如果您剛開始使用版本控制,對於單人項目,那麼最初不要擔心所有這些工作流程等。首先,習慣於提交。
你剛剛運行你的程序和測試的東西,它的工作?太好了,承諾。要做一些你不太確定的事情會起作用嗎?承諾。儘早並經常提交。關於git的好處是,如果你選擇了一個不好的地方提交,提交是可撤消的(提示:如果它不能編譯,它可能是一個糟糕的地方 - 但也有例外,一旦你對git rebase -i
和10和git add -i
有一種先進的工具,所以先習慣基礎!(嵌套括號很有趣!)))。
現在,關於切換焦點 - git有很多有用的工具。
舉例來說,如果你要修復一個bug,但有一堆已經等工作......
git stash save
的Git然後採取所有未提交的更改,保存它們,並恢復到上次提交。你可以修復bug,測試,提交,然後
git stash pop
所有這些變化然後重新應用在bugfix之上。
如果你工作在一個小功能,但後來意識到這實際上是一種複雜的,你可能會犯不止一次......
git checkout -b mynewbranch
而且你去那裏 - 你現在在一個新的分支。您可以隨時回到另一個分支
git checkout someotherbranch
您可以同時使用這與git stash
保存未提交的修改,然後交換到另一個分支做完全不同的事情。當你想回來,git checkout mynewbranch
。
作爲一個稍微更先進的工具,如果你有一個微小的錯誤修正之作,而不想與整個積攢的事情打擾,你可以做
git add -i
# select what changes to include
git commit # commits only what you selected
這是由於git的指數 - git add -i
可讓您選擇從單個行級別到工作副本到索引的複製內容,然後git commit
將其保存爲提交。通過這樣做,您可以非常快速輕鬆地從一系列其他更改中挑出較小的修復。但是,請注意,這意味着您剛剛提交了一些從未編譯或測試過的內容;所以它需要注意不要犯一些被完全破壞的東西(你通常應該避免提交完全破壞的代碼,因爲它破壞了git bisect
-一種用於追蹤迴歸的非常方便的工具)。
一旦你習慣了這個基本流程,你可以開始向它添加一些過程。例如,您可以保留一個v1.x
分支,僅針對1.x系列進行錯誤修正。管他呢。使用適合您的工作流程。
+1提交頻率。承諾很便宜;早期和經常! – Nic
+1好答案。儘管如此,小修正。它應該是'git stash save',或者相當於'git stash'。 – vhallac
@vhallac,哎呀 - 混合它與'流行':) – bdonlan