我知道git stash show -p [email protected]{0}
提供保存到該存儲條目中的更改日誌,但我想知道當我進行這些更改時我正在使用哪個分支。這將是許多場景非常有幫助:當我隱藏更改時,我該如何判斷我所處的分支?
- 清理我的藏匿堆棧
- 回到了我藏的變化一個老問題(因此舊的分支)時,當時我就思考能夠很快回到問題和渾渾噩噩的地步,但最終在很長一段時間內陷入了其他問題。我發現自己在思考:「我認爲我爲此藏起了變化,但是我不確定,如果是這樣,那麼藏匿在堆棧中的是他們。」
我知道git stash show -p [email protected]{0}
提供保存到該存儲條目中的更改日誌,但我想知道當我進行這些更改時我正在使用哪個分支。這將是許多場景非常有幫助:當我隱藏更改時,我該如何判斷我所處的分支?
這與git stash list
一起顯示。在這個例子中,「夥伴」表示分支夥伴,「主人」表示分支主人。
$ git stash list
[email protected]{0}: WIP on dude: 7eb87fe initial
[email protected]{1}: WIP on master: 7eb87fe initial
另外,聽起來好像你在臨時放棄工作時隱藏起來。我有另一個我認爲優於存儲的工作流程,我承諾並重置它。這種方式的變化是在分支上,如果我放棄了該分支,相關的代碼也會被丟棄。
# do some work on dev
git co -b dev
# temporarily abandon it
git commit -a -m'commit instead of stash'
# do other work on master
git co master
# lets resume the old work
git co dev
# un stash
git reset HEAD^
(理想情況下,這應該是一個評論,但它太大了,需要太多的格式...)
注意,分支名(存儲爲默認消息的一部分)就是名字在存儲時。如果您有一段時間以來一直忽略的舊存儲器,則可能是分支名稱已移動。例如:
$ git checkout -b hack
...
$ git stash # creates "WIP on hack"
...
$ git branch -D hack # delete hack branch
...
$ git checkout -b hack
...
$ git stash list
「關於黑客WIP」你會在列表中看到的是老hack
分支,而不是新的。
實際存儲引用存儲在[email protected]{4}
或任何數字所指向的東西指向特定提交(git stash
保存的特殊合併提交,我稱之爲"stash bag")。該提交有一個父提交,它有另一個父代,等等;這個父母鍊形成了git保存的提交圖內的實際分支結構。分支名稱就是這樣:只是一個名字,你可以隨意改變,或者用git branch -D hack
來刪除,但分支結構是永久的,至少和任何git提交一樣永久。 (只要從某個指定的起點(如[email protected]{4}
)可以「到達」,提交就保留在存儲庫中。)
例如,如果您已重新綁定分支,則存儲本身指向在老(未衍合)分支結構:
n - n <-- hack
/
* - * - * - * <-- mainline
\
o - o <-- [old hack when stash was made]
|\
i-w <-- [email protected]{4}
這裏,藏匿袋掛了最後的「老」提交o
,而分支hack
,這是重建基礎,現在指向最後一個「新「提交n
。
你當然可以在舊的分支上塗抹或彈出舊的儲物袋;這或多或少意味着工作是如何工作的。或者你可以使用git stash branch
老藏匿轉換成它自己的一個新的分支:例如,如果你這樣做:
git stash branch restore-hack [email protected]{4}
,你會得到此圖:
n - n <-- hack
/
* - * - * - * <-- mainline
\
o - o <-- restore-hack
與現在的指數包含不管它包含你這麼做的時候原來git stash
和工作樹成立,當你這樣做,同樣git stash
它的方式。現在(換句話說,在「藏包」已解壓縮到索引和工作樹。)您可以git add
和/或git commit
作出的恢復(舊)更多的提交hack
分支,現在被命名爲restore-hack
。
如果你發現自己有很多舊存儲的存儲空間,你可能希望開始做一些真正的提交,這些提交只是稍後被重寫(如Andreas Wederbrand在his answer中建議的那樣)。我發現他們往往是減少混亂,我和我的需要變基回暖「上游」的轉變,他們只是自動變基。
嘿,如果你可以移動的工作流程的建議(這是我很欣賞,我想我會開始這種方式做的)所接受的評論,我會標記問題的答案。 –
有在評論中沒有格式,所以我認爲這是在回答最好的左......或者,我可以完全將其刪除。 –