假設有這樣的情況,我修改了兩個源檔案,但只存放了其中一個,并執行了一個提交(本地),這個特殊的提交將代表一個不存在于檔案系統中的源狀態,所以我無法測驗它是否被編譯。(這是提交策略的要求)
恢復到該提交的狀態。
在本地恢復到該特定的提交(然后編譯)將導致未分階段的檔案的修改丟失。 如果不把它推送到遠程,我就不能把它克隆到其他檔案夾來測驗是否能編譯,然而把它推送到遠程將使團隊可以使用未經驗證的源代碼,所以事情會變得更糟。
我唯一能找到的作業流程是,為當前的源創建一個本地(備份)副本,然后將本地 repo 恢復到提交狀態,(接受未提交的更改(未暫存的源檔案)),進行編譯,如果不能編譯,則從備份中復制回來,進行修改,猜測,修改,仍然不暫存我最初不想提交的內容,然后重復這個回圈,直到恢復的檔案被編譯。
問題
這聽起來太復雜了,要么
- a) 我錯過了一些東西。
- b) 在檔案之間需要嚴格的一致性(源檔案)的情況下,分階段不是一個可用的做法。多個檔案的修改必須是原子性的(就像ACID)。
uj5u.com熱心網友回復:
你可以使用git stash push -ak來撤銷作業目錄中所有尚未提交或暫存的修改。然后你可以做你的測驗,提交你的暫存更改,然后git stash pop恢復你正在進行的作業。git stash 檔案甚至建議了這種使用情況(EXAMPLES下的 "測驗部分提交")。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/325283.html
標籤:
上一篇:Git合并后會丟失一些檔案
下一篇:每天都在推送的分支上重新建立基地
