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/

 

 

冲突问题:

如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,

在发布这个配置文件的时候,会发生代码冲突:

error: Your local changes to the following files would be overwritten by merge:
        protected/config/main.php
Please, commit your changes or stash them before you can merge.

如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:

git stash
git pull
git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.

反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:

git reset --hard
git pull
其中git reset是针对版本,如果想针对文件回退本地修改,使用

git checkout HEAD file/to/restore
 

 

           

                    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值