2016-12-16 45 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