美文网首页
Git常用命令

Git常用命令

作者: c63f6576389b | 来源:发表于2020-01-18 20:02 被阅读0次

导航

    1.Git的分区(工作区,暂存区,版本库)

    2.Git分支

    3.版本的回滚(revert,reset)

    4.代码暂存(stash)


1.Git的分区(工作区,暂存区,版本库)

    - 工作区,也叫Working Directory

    - 暂存区,也叫stage,index

    - 版本库,也叫本地仓库,commit History


工作区

工作区应该不陌生,就是我们能看见,直接编辑的区域。对于一些新增的文件,如果没有被add到暂存区,就会以红色的形式放置在工作区。

暂存区

数据暂时存放的区域,对于add git版本控制的文件,就算是进入暂存区啦。可以理解为数据进入本地代码仓库之前存放的区域。由于还没对本地仓库生效,所以是数据暂时存放的区域。

对暂存区的文件修改后,会以蓝色的形式显示。如果第一次创建并add到暂存区的文件,由于远程仓库没有同步,所以会显示绿色。

注:存放在 ".git目录下" 下的index文件(.git/index)中

版本库

在暂存区commit的代码会被放入版本库中。可以理解为一个本地的代码仓库,push的时候,才会把版本库的数据全都发送到远程仓库中。

分区转换指令

         git add数据从工作区转移至暂存区                                                                                                       git commit数据从暂存区转移至版本库,也就是本地仓库
         git push数据从版本库中发送到远程仓库

分区对比指令

        git diff  工作区与暂存区对比
        git diff head  工作区与版本库对比
        git diff --cached  暂存区与版本库对比



2.Git分支

    git branch 创建其他分支
    gitcheckout 切换到其他分支

分支的合并
    merge 和 rebase 两种方式:都是从一个分支获取并合并到当前分支
    merge:自动创建一个新的commit,如果遇到冲突,仅需要修改后重新commit
    rebase: 找公共的节点,直接合并之前commit历史
git rebase --abort:遇到冲突时放弃合并,回到rebase操作之前的状态
git rebase --continue:合并冲突,结合"git add 文件"命令一起,一步一步地解决冲突
git rebase --skip:将引起冲突的commits丢弃掉

分支的冲突
    冲突是从合并的时候产生的。git分支的合并,其实就是tree和tree的合并

3.版本的回滚(revert,reset)

    git revert后,将回退到上一个commit的版本
    git reset分为三种模式:
        soft
        mixed
        hard

由于每一次的commit都会产生与之对应的hash值,所以借助这个进行重置就轻松多了

git reset --hard commit的hash值
        会重置暂存区和工作区,完全重置为指定的commit节点。当前分支没有commit的代码必然会被清除

git reset --soft commit的hash值
        会保留工作目录,并把指定的commit节点与当前分支的差异都存入暂存区。也就是说,没有被commit的代码也能够保留下来

git reset commit的hash值
        不带参数,也就是mixed模式。将会保留工作目录,并且把工作区,暂存区以及与reset的差异都放到工作区,然后清空暂存区。因此执行后,只要有所差异,文件都会变成红色,变得难以区分

4.代码暂存(stash)

    git stash  暂存修改过的代码,保存在Git栈中,然后将工作区还原成上一次commit的内容
    
    git stash list  显示之前压栈的所有记录

    git stash clear  清空Git栈

    git stash apply  从Git栈中读取上一次暂存的那些代码,恢复工作区



参考文章:
    https://zhuanlan.zhihu.com/p/98679880
    https://www.cnblogs.com/best/p/7474442.html#_lab2_0_0

    
    

相关文章

网友评论

      本文标题:Git常用命令

      本文链接:https://www.haomeiwen.com/subject/njtlzctx.html