书到用时方恨少,git命令也是如此,当遇到问题需要用到的时候,才发现知道的太少~。下面介绍几个比较实用的git命令,也是开发过程中经常会遇到的。
git pull 同步远程分支代码,有冲突 。
------- 看提示内容,我们也知道应该怎么做了。“Please commit your changes or stash them before you merge",我本地有修改的内容,这里提示要么把修改的内容提交,要么先把本地修改的内容stash存储起来,这样才能进行merge合并。
git stash
------ 采用git stash会将我本地修改的内容保存起来,接下来就可以通过git pull命令进行merge了。
git pull
------ git pull的时候,我们看到有些文件时自动merge了,不过也有2个文件有冲突merger失败,有冲突的文件就需要我们手动解决冲突了。
git stash pop
------git stash pop,将前面保存的本地修改文件弹出,切回到我们之前修改文件的状态。看到有2个文件需要merge,接下来我们通过commit提交这2个文件。
git commit 提交冲突文件
[总结]:在提交本地修改之前,我们首先需要git pull来同步远程分支,如果有冲突,那么先通过git stash将本地的修改进行保存,然后再git pull同步分支,git pull过程中,产生需要手动解决冲突的文件,我们需要手动解决,手动解决完成后,再次git pull即可同步最新代码。
git log 可以看到我们提交的记录,那我们想取消某些修改内容,那该怎么办呢?(只是单独取消某次commit的内容,对其它的提交没有影响)
这时git revert 就派上用场了。
如下图所示,我想回退红色框图的提交记录,提交的内容是添加了个text1.txt的文件,再这个提交的后面,还提交了个text2.txt。
git revert +commit id
git revert 之后,我们看下本地的文件情况,text2.txt还在,text1.txt没有了,ok,我们的目的达到了。
如下图所示,我想回退最新的修改记录,最新的修改记录,是添加了个测试的text3.txt文件。然后我希望回退这条修改记录后,本地的修改并没有被撤销,也就是本地还是保留着text3.txt这个文件。
git reset --soft +commit Id
----- 我们把commit记录回退到添加text3.txt前面的id,然后再ls看下本地的文件,还是保留着text3.txt这个文件。
如下图所示,我本地提交了一个commit,不过还没有push提交到远程分支,然后我不想提交这个commit了。这时就可以采用git reset --soft HEAD^ 的命令,采用这个命令,只是撤销了最近一次的commit,本地的修改记录还是保留的。
如下图所示,“for test:new add text4.txt”,这个commit描述的内容,我想修改下。
git commit --amend
-------执行这个命令,将最近commit的描述内容进行修改,我修改成了“for test:text4.txt”。
git 命令相关说明文档:https://git-scm.com/docs
------- 2020.03.21
欢迎关注我的个人微信公众号,公众号会记录自己开发的点滴,还有日常的生活,希望和更多的小伙伴一起交流~~
(ps:本人目前在深圳上班)