1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【Git/Github学习笔记】Git常用命令(代码冲突二)

【Git/Github学习笔记】Git常用命令(代码冲突二)

时间:2019-07-19 23:06:05

相关推荐

【Git/Github学习笔记】Git常用命令(代码冲突二)

代码冲突二:总结一句话 就是(新功能实现还未完成,之前完成的部分又出现了新的问题需要修复),如何既能修复bug,又不让写的新任务代码丢弃的问题。

上一节中我们解决了多人协作代码冲突的问题,这一节要讲解另外一种冲突解决:有这样一种场景,今天老板给我安排了一个新的项目,我们昨天的代码已经提交到github上了,今天我们需要干一个新的事情,但是在干这个新的事情的过程中,我们之前的项目出现了一个紧急的错误需要我们修复,那么我们怎么处理当前处理的任务代码呢?我们不能把它丢弃掉,但是如果不丢弃直接更新到线上,因为没有经过测试,会有很多的问题。

我们用git stash命令解决这一个问题。git stash能够对当前的工作区的代码以及暂存区的代码进行保存。stash像一个堆栈,我们可以对他多次推送,相当于入栈的操作。stash还有另外几条命令。

git stash list

列出所有保存的记录列表。就是推送多次到stash里面,它都会帮我们存储。

以下参考:/wh_19910525/article/details/7784901比教程中所讲的更加容易理解。

//*****************************************

git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码(远程抽取最新的代码), 又不想加新commit(所以将当前的工作区保存住),或者另外一种情况,为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作(这种情况用到的比较多,也比较好理解),这段文字比较好理解,比视频中的好理解。

$git stash$do some work$git stash pop

进阶:

git stash save "work in progress for foo feature"

当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑。

git stash list’ 命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。

git stash# save uncommitted changes# pull, edit, etc.git stash list# list stashed changes in this gitgit show stash@{0} # see the last stash git stash pop# apply last stash and remove it from the listgit stash --help # for more info

//***********************************************

最原始的程序为:

新任务的程序为:

现在最原始的程序出现了紧急bug需要修复,所以使用了git stash保存当前的工作区,执行完该命令后,程序重新变为了最原始的程序(没有任何新任务(功能)的代码痕迹):

然后我们修复了bug(这个bug的修复我们用定义新的变量程序代码来模拟),如下图:

将修复完之后的程序推送到github上,我们需要继续完成我们未完成的新任务,使用git stash pop返回之前保存过的工作区,这时,恢复的版本和修改bug之后的版本会出现冲突,如图:

修改程序,解决冲突,完成新功能后就可以重新提交到github上了,这样我们既解决了之前老程序存在的问题,有保存了完成新任务和新功能所为而未完成的程序,冲突解决之后,就可以完成新的功能了,并进一步的提交了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。