2016-12-16 37 views
1

昨天我在主分支上做了一些修改,但没有提交,今天我试着拉高手,但说我必须提交或隐藏我的修改Please, commit your changes or stash them before you can merge. 我把它们藏起来git stash,然后从主git pull拉到现在我已经在我的代码中做了一些更改,但发现应该完成存储并且我必须提交更改。现在,我能做些什么有如何取回后拉回

1)从藏匿更改回

2)我从git pull

3)和我目前得到改变

我发现这个职位here但人没有从主人那里拉出来,所以我不确定那里的答案会对我有用,并且不能真正地冒险,并且尽可能地对主人进行尝试。

回答

3

只需使用git stash popgit stash apply。只要存储的更改不会与您拉取或编辑的内容相冲突,它就会正常工作,如果没有,则会发生一些合并冲突,您可以在合并或重新绑定时解决这些冲突。

+0

我用'git stash pop',但它没有返回所有的变化只是其中的一些,可能是什么原因? –

+0

没有任何错误信息?不可能是。要么它可以应用所有更改,要么失败,并显示一些错误消息,如合并冲突,并且不会从存储中弹出,也不会冒失去更改的风险。你可以看看'git stash list',也许你在多个步骤中储存了你的修改?如果有存储空间,可以像往常一样区分它们,比如'git diff stash ^!'来查看里面的内容。 – Vampire

+0

或者,您所做的更改与从远程获得的更改完全相同,因此您不会再看到它们已发生更改,因为它们已经提交。 – Vampire

1
$ git stash list    # see stash list(s) 
$ git stash apply    # default take the top one '[email protected]{0}' 
$ git stash pop    # take the top stash changes then delete it. pop = apply + drop 

$ git stash apply [email protected]{1} # get back number 2 stash changes