我想對我的git工作流程提供一些反饋,因爲這是我第一次使用它,儘管閱讀了各種文章和Stack Overflow問題,但我不確定我的過程是否正確。這是我目前的工作流程(請注意,我正在使用Github for Windows應用程序進行所有git交互):單個開發人員的Github工作流程
- 決定我要實現的下一個功能。
- 爲該功能創建一個具有適當描述性名稱的分支。我通過單擊Github for Windows中的分支按鈕並輸入新名稱來完成此操作。
- 編寫一些代碼。
- 將這些更改提交給我的新分支。
- 再寫一些代碼。
- 將這些更改提交給我的新分支。
- 我已完成實現該功能,所以我想將我的更改合併回主分支。所以我點擊分支標題下的'管理'按鈕。
- 將新分支合併到主分支中。
- 刪除新分支。
我很高興直到第7步的過程,在這一點上我有點困惑。我認爲我的困惑在於我試圖使用Github for Windows應用程序而不是使用命令行。這個應用似乎讓事情變得更簡單了,但是在我看到的一些命令/指令和你在應用中採取的操作之間存在一些斷開。
讓我問一些具體的問題:
- 是我的工作流程實際上是正確的?如果沒有,它有什麼問題,我該如何改進?
- 我應該將我的更改「發佈」到新分支嗎?我的理解是,這相當於在命令行上執行
git push
。真的嗎?如果是這樣,我想我只是想在我完成實現該功能或者處於體面狀態時這麼做? - 我是否應該在刪除分支時將其合併到主分支中,還是應該一直保留下來?
- 我是否需要在完成合並時發佈主分支,還是隱式的?
- 我有時無法執行合併,並得到這個錯誤信息:
無法合併
未能「測試」合併到「主人」。你可能需要打開一個shell並調試這個repo的狀態。
發生這種情況時之前,我能夠但是切換到主分支和合並新分支到主分支不再起作用。無論我在哪個分支,我都不能合併這兩個分支。兩者都是同步的,我已經發布了來自我的測試分支的所有更改。我應該在shell中輸入什麼來找出爲什麼我不能合併分支?
供參考,這些都是促使我的過程中的主要環節:
- Scott Chacon on the workflow at Gitub
- Git workflow for a single developer on a local repository
- Git workflow for a single user
謝謝 - 很高興知道我在正確的軌道上!儘管我仍然對分支感到困惑,但我認爲這正是我的頭痛源頭。當我在Github for Windows中創建一個新的分支時,我應該期望它會在某處創建一個新目錄嗎?因爲如果它不是,那麼我不只是編輯我的主分支中的代碼? – Stu 2012-07-29 16:36:18
Git將所有內容都存儲在.git文件夾中的一堆deltas中。所以當你創建一個新的分支時,就像你正在處理你的主/克隆分支的副本。但它都在同一個文件夾中(提交一些更改並翻轉分支並重新打開文件以查看)。注意你已經簽出了哪一個分支,因爲開始編寫一堆東西可能很容易,忘記了你沒有切換分支,最終承諾掌握主而不是功能分支。這就是藏在裏面的方便用具。 – yellottyellott 2012-07-30 15:22:35
很抱歉,不接受這個作爲我的問題的答案更快,有些我似乎錯過了你的最後一條評論,它回答了我所有的問題。非常感謝! – Stu 2012-08-11 08:55:20