git

2020-01-29 21:10 阅读 1,168 views 次 git已关闭评论

6. git checkout -p <branch>

这个命令可以用来打补丁。这个命令主要用来比较两个分支间的差异内容,并提供交互式的界面来选择进一步的操作。这个命令不仅可以比较两个分支间的差异,还可以比较单个文件的差异哦!

 

stash可以把当前工作现场“保存”起来,等以后恢复现场后继续工作。演示如下:

1.查看分支
有两个分支master和subWork,当前的工作分支是subWork。

$ git branch
master
* subWork
2.查看工作状态
当前分支subWork上的工作尚未完成,如果有另一项任务需要优先完成,或者出现BUG需要立刻修复。此时需要另外创建一个分支来工作,可以把当前工作现场“保存”起来,等以后恢复现场后继续工作。

$ git status
On branch subWork
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)

modified: test.txt
3.保存工作现场
$ git stash
此时查看状态,工作区就是干净的。

$ git status
On branch subWork
nothing to commit (working directory clean)
4.创建分支
假设需要在分支master上修复,就切换到master上。

$ git checkout master
在master上创建新分支bug001,并设为当前工作分支。

$ git checkout -b bug001
修改bug,然后提交。

$ git add test.txt
$ git commit -m "fix bug 100"
修复完成后,切换到master分支。

$ git checkout master
合并master分支和bug001分支。(--no-ff参数,表示禁用Fast Forward模式,禁用后Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息)。

$ git merge --no-ff -m "merge bug001" bug001
最后,删除分支bug001。

$ git branch -d bug001
5.恢复工作现场
现在,BUG修复完成了,我们可以回到subWork分支,继续我们的工作了。

切换到subWork分支。

$ git checkout subWork
恢复工作现场。

$ git stash pop
注:可以多次用命令git stash 保存工作现场,然后用git stash list 查看保存的列表,然后用 git stash apply恢复。

用 git stash apply恢复后,保存的现场并不删除,需要用git stash drop 删除。

————————————————
版权声明:本文为CSDN博主「万里归来少年心」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liyazhen2011/article/details/83501134

 

于git revert不会回退到暂存区中,所以使用git status 没有任何变化

 

如果换做执行git reset --soft(默认) HEAD~1后,运行git log可以看到

commit2: add test2.c

commit1: add test1.c

运行git status,可以看到test3.c处于暂存区了,准备提交。

 

但如果换做执行git revert后,

显示:HEAD is now at commit2,运行git log可以看到

commit2: add test2.c

commit1: add test1.c

运行git status, 则没有任何变化

 

所以,git revert与git reset最大的不同是,git revert 仅仅是撤销某次提交,而git reset会将撤销点之后的操作

都回退到暂存区中。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:git | 文档
分类:电脑技术 标签:

评论已关闭!