2012-07-04 89 views
5

在工作中我們使用TFS,我試圖讓Git-TFS工具工作,以便在將它們推送到我們的TFS回購之前使用本地提交時有更大的靈活性。Git-Tfs:每個Git Commit的TFS變更集?

我有這個工作,但是當我做一個git tfs ct時,它檢查我的所有提交到一個TFS變更集。我錯過了什麼,或者它是如何工作的?如果它不會將我的每個提交單獨作爲單獨的更改集單獨推送到TFS,那麼它似乎首先破壞了使用git-tfs的目的。

回答

9

我使用rcheckin命令,它將您的新git變更集一次提交給tfs,在每個tfs提交之後重新綁定剩餘的提交以產生一個正常的尋找樹。使用checkintool子命令產生一個mergecommit - 我不記得它壓扁git提交雖然。

所以我們使用普通的Git工作流程:檢出特性分支,它的工作,結賬掌握和「git的TFS拉」,對重訂主關注的分支,然後根據需要合併功能,主做git tfs rcheckin。最後,刪除功能分支。在極少數情況下,這種情況已經失敗(由於鎖定的tfs文件),rcheckin停止將所有的東西都置於明智的狀態,以便一旦阻塞被清除,繼續是沒有問題的。

總之,git-tfs使得使用TFS可以忍受。

+0

太棒了!這只是我想要的。我想知道爲什麼Github自述和維基頁面沒有提到這個命令。 – Dan

+0

我不喜歡'rcheckin'由於鎖定文件而失敗的唯一情況是您的更改已被_partially_發送到TFS服務器。因爲我和一羣Git害羞而喜歡TFS的人一起工作,所以我不得不用'rebase -i'來壓縮我的提交,這樣我的成功/失敗總是原子性的。 –