git 常备后悔药

  • commit到本地仓库中了,但是还没有做push操作的 

         1.文件被修改了,但未执行git add操作(working tree内撤销)

                      git checkout fileName  或者  git checkout .

          2.同时对多个文件执行了git add操作,但本次只想提交其中一部分文件

                       git add *       git status   取消暂存    git reset HEAD <filename>

          3.文件执行了git add操作,但想撤销对其的修改(index内回滚)

                      git reset HEAD fileName //取消暂存

                      git checkout fileName     // 撤销修改

           4. 修改的文件已被git commit,但想再次修改不再产生新的Commit

                     git add last.txt   git commit --amend -m "last speaking"

            5.已在本地进行了多次git commit操作,现在想撤销到其中某次Commit

                     git reset [--hard|soft|mixed|merge|keep]   [commit|HEAD]

  • 已进行git push,即已推送到“远程仓库”中

             1.如果打了Tag 

                        git checkout <tag>

               2.撤销指定文件到指定版本 

                          git checkout <commitId> <filename>

                3.删除最后一次远程提交

                       方法1:git revert HEAD  然后 git push   这种方法放弃了提交的修改,会生成一次新的提交,以前的历史记录都在

                       方法2:git reset --hard HEAD^  然后 git push origin master -f      这种方式历史记录不会出现放弃的提交记录

              4.回滚到某次提交

                        git revert commitID 

               5.删除某次提交

                         git rebase -i "commitID"^

赠送一枚练习git 的网站 :https://learngitbranching.js.org/

           

                    

猜你喜欢

转载自blog.csdn.net/dongheli/article/details/81262935