我在我的本地分支上進行當前檔案更改,并且不得不拉動 Master。所以我做了-
git stash
git checkout master
git pull origin master
在這一步通常我會這樣做git checkout myCurrentBranch,然后git stash apply stash@{0},但由于疏忽,我在 Master 分支本身上做了 apply stash。
我怎樣才能撤消這一步?并在 myCurrentBranch 上取回我的檔案更改?
uj5u.com熱心網友回復:
您應該能夠執行以下操作:
git stash
git checkout myCurrentBranch
git stash apply stash@{0}
這會將您的更改回傳到存盤并將主分支回傳到干凈狀態,然后再切換回本地分支并在那里重新應用存盤。
uj5u.com熱心網友回復:
由于您使用了git stash apply而不是git stash pop,您仍然擁有您保存的 stash。這意味著您可以通過以下方式清除當前更改:
git reset --hard
后跟git checkout(或git switch)到您想要的分支和另一個git stash apply.
相關,但無關 git stash
您可以通過避免 git pull. 此時您不需要更新您的分支master,事實上,您可以完全洗掉您的master分支。代替:
git stash
git checkout master
git pull
git checkout original-branch
git stash apply
# inspect and make sure all is well, and last:
git stash drop
您可以使用:
git fetch origin
# or just git fetch - "origin" is the usual default
當fetch完成后,你origin/master將被更新。而不是使用自己的master,你現在可以使用origin/master。請注意,這origin/master不是分支名稱:而是一個遠程跟蹤名稱。它會記住你的 Git 在另一個 Git 上看到的origin,在他們的 master,你上次運行git fetch origin或git fetch. 運行會自動git fetch origin更新你的origin/master,因為這是你的 Git 對其分支的記憶:如果他們更新了他們的分支,你的系統就會更新并記住這一點。如果他們沒有更新他們的分支,你的系統就不必更新任何東西,也不會。
由于您永遠不需要離開當前分支,因此您永遠不必使用它們git stash。
(如果你想檢查進來的東西,即,看看他們的——master你的origin/master——是什么樣子的,也有多種方法可以做到這一點,而不會破壞你現有的分支,但讓我們就此打住,因為那不是你的問題。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/346812.html
下一篇:Git合并請求和分支策略
