我想弄清楚在進行更改時要在測試代碼版本之間來回切換的最簡單方法。當我處於某些事情的中間時,想要測試一下其他的東西,我會使用git stash,但是在這種情況下似乎是過度殺毒,因爲它無法在單個文件上完成。如何使用git臨時作爲臨時空間?
我試圖做的是git add {file}
暫時存儲更改,然後git checkout {file}
回到以前的狀態。其目的是將文件暫存作爲文件的暫存區域,然後將暫存的文件放回到我的工作目錄中。我很驚訝,雖然在升級文件後,結帳對工作目錄中的文件沒有影響。是否有一系列的命令選項可以讓我的工作流程按照我的要求運行?
更新1:
基於文檔看來,如果有一種方法步驟2不覆蓋該指數將工作
- 混帳添加{文件}
- git的結帳HEAD {文件}
- git的結帳{}文件
更新2:
在受到ElpieKay的帖子的啓發,看看寫文件命令的輸出後,我發現another answer克服了上述步驟2的限制。用git show HEAD:{file} > {file}
我現在可以覆蓋文件的工作目錄版本而不覆蓋索引。然後調用checkout將索引版本拉入工作目錄。用git結帳指數我得到這個...結合
- 混帳添加{}文件
- 混帳顯示HEAD:{文件}> {}文件
- git的結帳指數-f
可能重複的[從多個文件中只存儲一個文件,使用Git更改?](http://stackoverflow.com/questions/3040833/stash-only-one-file-out-of-multiple-files -that-have-changed-with-git) – dnit13
@ dnit13感謝您指出帖子。我現在正在消化它,但首先看它看起來並沒有做我所需要的,並且可能非常容易出錯。 –
會在分支上工作並通過父提交來回導航是否是一種選擇?您始終可以從另一個分支中挑選一個文件的副本。 –