简单学会如何操作Git

在这里插入图片描述


  • 一、Git 仓库创建及工作量
    • 1.1 Git 常用命令
      • git init: 初始化版本库
      • 添加文件到版本库:
        • git add —— 在暂存区
        • git commit ——提交
        • git rm --cached ——移除提交
      • git status:查看仓库状态
      • git tag : 标签
      • git log :命令可以查看所有产生的 commit 记录,所以可以看到已经产生了一条 commit 记录,而提交时候的附带信息叫 “first commit” 。
      • 消除最近几次的提交: git reset --hard ***(要回滚到的位置的那个commit的编号)
      • 正确删除文件: git rm ***(文件名)
      • 回滚和工作区一样:git reset --hard HEAD
      • git branch:branch 即分支的意思,分支的概念很重要,尤其是团队协作的时候,假设两个人都在做同一个项目,这个时候分支就是保证两人能协同合作的最大利器了。举个例子,A, B俩人都在做同一个项目,但是不同的模块,这个时候A新建了一个分支叫a, B新建了一个分支叫b,这样A、B做的所有代码改动都各自在各自的分支,互不影响,等到俩人都把各自的模块都做完了,最后再统一把分支合并起来。
      • git checkout a: 切换分支
      • git checkout -b a:这个命令的意思就是新建一个a分支,并且自动切换到a分支。
      • 查看所有分支(包括远端分支):git branch -av
      • git merge:A同学在a分支代码写的不亦乐乎,终于他的功能完工了,并且测试也都ok了,准备要上线了,这个时候就需要把他的代码合并到主分支master上来,然后发布。git merge 就是合并分支用到的命令,针对这个情况,需要先做两步,第一步是切换到 master 分支,如果你已经在了就不用切换了,第二步执行 git merge a ,意思就是把a分支的代码合并过来,不出意外,这个时候a分支的代码就顺利合并到 master 分支来了。
      • git branch -d:假如这个分支新建错了,或者a分支的代码已经顺利合并到 master 分支来了,那么a分支没用了,需要删除,这个时候执行 git branch -d a 就可以把a分支删除了。
      • git branch -D:有些时候可能会删除失败,比如如果a分支的代码还没有合并到master,你执行 git branch -d a 是删除不了的,它会智能的提示你a分支还有未合并的代码,但是如果你非要删除,那就执行 git branch -D a 就可以强制删除a分支。
        在这里插入图片描述
      • 利用一个很强大的 alias 命令,我们知道我们输入 git log 查看日志的时候是类似这样的:
        在这里插入图片描述
      • 利用一个比较屌的命令,输入git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
        在这里插入图片描述
        是不是比较清晰,整个分支的走向也很明确,但是每次都要输这么一大串是不是也很烦?这时候就该想到 alias ,输入:git config --global alias.lg “log --graph --pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ --abbrev-commit --date=relative”
    • 这样以后直接输入 git lg 就行了。

    • git diff: 使用场景是我们经常在做代码改动,但是有的时候2天前的代码了,做了哪些改动都忘记了,在提交之前需要确认下,这个时候就可以用diff来查看你到底做了哪些改动。(红色的部分前面有个 - 代表我删除的,绿色的部分前面有个 + 代表我增加的,所以从这里你们能一目了然的知道我到底对这个文件做了哪些改动。)
      在这里插入图片描述

    • 直接输入 git diff 只能比较当前文件和缓存区文件差异,什么是缓存区?就是你还没有执行 git add 的文件。

    • 做其他比较:

      git diff <$id1> <$id2> # 比较两次提交之间的差异
      
      git diff <branch1>..<branch2> # 在两个分支之间比较
      
      git diff --staged # 比较暂存区和版本库差异
      
    • 两种合并:

      • 我们知道 merge 分支是合并的意思,我们在一个 featureA 分支开发完了一个功能,这个时候需要合并到主分支 master 上去,我们只需要进行如下操作:

        
        git checkout master
        
        git merge featureA
        

        其实 rebase 命令也是合并的意思,上面的需求我们一样可以如下操作:

        
        git checkout master
        
        git rebase featureA
        

        rebase 跟 merge 的区别你们可以理解成有两个书架,你需要把两个书架的书整理到一起去,第一种做法是 merge ,比较粗鲁暴力,就直接腾出一块地方把另一个书架的书全部放进去,虽然暴力,但是这种做法你可以知道哪些书是来自另一个书架的;第二种做法就是 rebase ,他会把两个书架的书先进行比较,按照购书的时间来给他重新排序,然后重新放置好,这样做的好处就是合并之后的书架看起来很有逻辑,但是你很难清晰的知道哪些书来自哪个书架。

    • git commit --amend:修改最近一次的commit提交信息。

    • git rebase -i **(选择某一个commit):
      在这里插入图片描述

    • commit的合并:git rebase -i ***(选择最开始的一个commit)

    • 查看工作在哪一个分支: git branch -av

  • 1.2 创建仓库:
    • 图形界面方式:新建Demo仓库,上传文件到本地仓库。
      在这里插入图片描述
    • 命令行方式:mkdir Demo2
      在这里插入图片描述
      在这里插入图片描述
    • 展示隐藏或者不隐藏的文件:
      在这里插入图片描述
    • 添加文件到版本库:
      在这里插入图片描述


  • 二、Git 的主要功能
    • 2.1 远程仓库
      • 添加远程库
      • 从远程库克隆
      • Push & Pull:
        在提交代码之前我们先要了解两个命令,也是上次的文章没有介绍的,因为这两个命令需要跟远程仓库配合。
      • Push :直译过来就是「推」的意思,什么意思呢?如果你本地代码有更新了,那么就需要把本地代码推到远程仓库,这样本地仓库跟远程仓库就可以保持同步了。
        代码示例: git push origin master
        意思就是把本地代码推到远程 master 分支。
      • Pull:直译过来就是「拉」的意思,如果别人提交代码到远程仓库,这个时候你需要把远程仓库的最新代码拉下来,然后保证两端代码的同步。
        代码示例: git pull origin master
        意思就是把远程最新的代码更新到本地。一般我们在 push 之前都会先 pull ,这样不容易冲突。
    • 2.2 克隆仓库
      • git clone
    • 2.3 标签管理
      • git tag
    • 2.4 分支管理
      • git branch


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值