2017-01-16 35 views
0

Git存儲是一個非常有用的命令系列,但它不會向命令添加任何內容(即,如果沒有提交命令,則無法提交,而您可以使用變通方法存儲命令)。Git:模擬git存儲而不存儲命令

如果你不得不隱藏你的工作,但沒有隱藏命令,你會怎麼做?

+0

我懷疑這個前提,你不能沒有'commit'子命令提交。例如,請參閱https://git-scm.com/docs/git-commit-tree下的'commit-tree'命令。 – Boldewyn

+0

我這樣做與其他版本控制系統的方式本質上是'git diff> changes.patch'。然後重新應用它們(用git你可以通過'git apply'來完成,或者你可以使用'patch'命令來重新應用它)。這是一個管理的熊,但可以做到。儘管'git stash'更友好。 – jszakmeister

+0

此外,你可能想看看[Gitless](http://gitless.com/)。他們試圖解決他們認爲是Git更基本的問題。在Gitless中,當你改變分支時,它會保存你的分支變化,據說不需要存儲。我不同意這種說法,但它仍然是一個有趣的項目。 – jszakmeister

回答

1

我喜歡的一種選擇是在有問題的分支上進行正式的臨時提交,

# work work work 
git commit -m 'Completed the feature' 

現在你可以切換到另一個分支並從那裏繼續。當談到時間來恢復到原來的分支,可以完成功能並修改臨時承諾:

git checkout original_branch 
# finish the work 
git commit --amend 

現在你只剩下一個承諾,而且你可以在某個地方做了修補程序其他。

請注意,git stash內部實際上提交了一個提交(其中2或3個),以保存工作目錄和索引的狀態。

閱讀@torek的lengthy answer about git stash通過鏈接。

相關問題