2012-07-04 54 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'来压缩我的提交,这样我的成功/失败总是原子性的。 –