美文网首页
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