9
我見過很多不同的方法來丟棄更改/恢復到以前使用Git提交。我通常可以找出適合自己情況的工具,但在這個過程中,我對這種不同的方法感到困惑不解。最近我試圖撤銷一些文件重命名,無論我多麼努力地嘗試git checkout
舊版本的文件,我仍舊無法恢復舊文件。正確的方式來放棄Git中的變化
我正在尋找說明使用哪種方法以及爲什麼。這是我對幾種方法的理解。我意識到答案可能非常有關聯性,但我想嘗試理清哪些上下文需要哪些方法。
1)git checkout -- .
- 用於檢出最新版本的文件,會覆蓋舊文件,但不會影響刪除,重命名,或新的文件。
2)git stash save --keep-index
隨後git stash drop
- 藏匿未提交的文件,然後丟棄它們完全。如果您已經提交了想要保留的更改並且您想要放棄的未提交/未擱置更改,那麼這種方法很好。
3)git reset --hard
- 消滅了一切,因爲最後一次提交,包括文件重命名,刪除和補充。
這是我目前的我的選擇的理解。你會對我的解釋做出什麼改變嗎?我也不確定何時使用git revert
代替上述命令。
源帖子:
- Can't seem to discard changes in Git
- How do I discard unstaged changes in Git?
- GIT Discard any changes I've made to a branch
-u做什麼?我真的不想用我不需要的代碼填充我的存儲堆棧。 – 2012-08-15 19:29:34
不要擔心填滿你的藏身之處。 '-u'除了跟蹤的文件之外還存儲未跟蹤的文件。它允許它表現得像重置一樣。 – 2012-08-16 16:56:27