美文网首页
git 命令

git 命令

作者: zhenghongmo | 来源:发表于2022-07-27 15:15 被阅读0次
    • git stash
    # 暂时保存没有提交的工作
    $ git stash 
    $ git stash save '这是提交备注'
    # 列出所有暂时保存的工作
    $ git stash list
    stash@{0}: WIP on workbranch: 56cd5d4 Revert "update old files"
    stash@{1}: WIP on project1: 1dd87ea commit "fix typos and grammar"
    # 恢复某个暂时保存的工作
    $ git stash apply stash@{1}
    # 恢复最近一次stash的文件
    $ git stash pop
    # 丢弃最近一次stash的文件
    $ git stash drop
    # 删除所有的stash
    $ git stash clear
    
    • git cherry-pick
      部分合并,命令”复制”一个提交节点并在当前分支做一次完全一样的新提交
    $ git cherry-pick 2c33a
    
    • git reset
      回退
    # 将当期分支的指针倒退三个 commit,
    # 并且会改变暂存区
    $ git reset HEAD~3
    # 倒退指针的同时,不改变暂存区
    $ git reset --soft HEAD~3
    # 倒退指针的同时,改变工作区
    $ git reset --hard HEAD~3
    # 撤销上一次向暂存区添加的所有文件
    $ git reset
    # 无任何效果
    $ git reset --soft
    # 同时撤销暂存区和工作区的修改,
    # 回复到上一次提交的状态
    $ git reset --hard
    # 撤销上一次向暂存区添加的某个指定文件,
    # 不影响工作区中的该文件
    $ git reset -- <filename>
    
    • git commit
    # -a参数用于先将所有工作区的变动文件,提交到暂存区,再运行git commit。用了-a参数,就不用执行git add .命令了
    $ git commit -am "message"
    #--allow-empty参数用于没有提交信息的 commit
    $ git commit --allow-empty
    #--amend参数用于撤销上一次 commit,然后生成一个新的 commit
    $ git commit --amend - m "new commit message"
    #--squash 表示当前添加的 commit 应该与以前某一个 commit 合并成一个,以后执行互动式的git rebase的时候,这两个 commit 将会合并成一个
    $ git commit --squash <commit>
    
    • git rebase
    #git rebase 将当前分支移植到指定分支或指定commit之上
    $ git rebase -i <commit>
    $ git rebase -i master~3
    
    • git bisect
      用来查找哪一次代码提交引入了错误
    #首先,检查一下代码提交历史,可以看到,这个库一共有101次提交。最早的第一次提交的哈希是4d83cf
    $ git log --pretty=oneline
    #启动查错
    $ git bisect start [终点] [起点]
    #比如起点是第一次提交4d83cf,终点是最近一次的HEAD。指定其他范围也可以
    $ git bisect start HEAD 4d83cf //执行此命令以后,代码库就会切换到这段范围正当中的那一次提交,本例是第51次提交。
    #启动项目,发现正常,使用git bisect good命令,标识本次提交(第51次)没有问题。
    $ git bisect good
    #第51次提交没有问题,就意味着错误是在代码历史的后半段引入的。执行上面的命令,Git 就自动切换到后半段的中点(第76次提交)。
    #启动项目,发现不正常。使用git bisect bad命令,标识本次提交(第76)有问题。
    $ git bisect bad
    #执行上面的命令以后,Git 就自动切换到第51次到第76次的中点(第63次提交)。
    #不断重复这个过程,直到成功找到出问题的那一次提交为止。这时,Git 会给出如下的提示。
    $ b47892 is the first bad commit
    #既然找到那个有问题的提交,就可以[检查代码]确定具体是什么错误。然后,使用`git bisect reset`命令,退出查错,回到最近一次的代码提交。
    $ git bisect reset
    #之后就可以开始修复错误了。
    

    相关文章

      网友评论

          本文标题:git 命令

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