藏匿我有大量的不可達的提交(愚蠢的我試圖clear
控制檯,而我已經git stash
鍵入)如何添加一個無法git的承諾由其哈希
我已經得到的一個散列這些哈希從一個混亂與git fsck
有一些簡單的方法xargs
這些哈希回到git存儲?
藏匿我有大量的不可達的提交(愚蠢的我試圖clear
控制檯,而我已經git stash
鍵入)如何添加一個無法git的承諾由其哈希
我已經得到的一個散列這些哈希從一個混亂與git fsck
有一些簡單的方法xargs
這些哈希回到git存儲?
快速回答:
git fsck | grep commit | cut -d' ' -f3 |
while read hash; do git rev-parse --verify --quiet $hash^2 && echo $hash; done |
xargs git log --grep WIP --pretty=oneline |
while read hash wip on branch commit junk; do
git checkout $hash; git reset --soft $commit; git stash; done
注意,這將藏匿的索引和工作樹的部分分成不同的藏匿處。你能舉一個你保存的輸出的例子嗎?存儲器有多個部分,您可能沒有所有部件的SHA。
已編輯爲包含示例存儲發現腳本以從右側相對基準重新生成存儲。
我已經把它列出到了'HASH WIP on master:'message'使用'git fsck | grep commit |切-d''-f3 |同時讀取散列;做git rev-parse --verify --quiet $ hash^2 && echo $ hash;完成| xargs git log --grep WIP --pretty = oneline' – arcyqwerty 2012-07-18 02:09:06
然後通過哈希來管理'awk'{print $ 1}' - 我知道我假設所有存儲的提交都有'WIP'在提交信息 – arcyqwerty 2012-07-18 02:10:40
@arcyqwerty:然後我的答案將重新連接所有位並將它們放入存儲中,當然,正如我所說的,如果您有多行輸出並且具有相同的註釋(這意味着索引和工作目錄都被不同地存儲),那麼他們將形成兩個窗口。讓我知道這是否發生在你身上或你是否在意。我可以嘗試調查一下更復雜的重新連接 – 2012-07-18 02:18:40
你的標題說「不可讀」,但你的描述說「無法訪問」,這是什麼? – 2012-07-18 01:55:02
無法訪問。我的錯。仍然沒有直接打字>> – arcyqwerty 2012-07-18 01:57:26