对于无法访问我们的tfs的远程工作者,我们使用git tfs克隆了一个tfs存储库。当我们回到他的存储库时,我们看到他在一个新的功能分支上工作。
在尝试重新检查他的更改之前,我们将他的特征分支合并到主分支中。由于他没有向master提交任何内容,因此发生了一个快进,导致一个流git日志。
不幸的是,由于最初的克隆,另一个(完全无关的)签入发生在tfs上。
当我们尝试rcheckin时,会收到以下错误消息:

Fetching changes from TFS to minimize possibility of late conflict...
error: New TFS changesets were found.
You may be able to resolve this problem.
- Try to rebase HEAD onto latest TFS checkin and repeat rcheckin or alternatively checkin s

我不明白,如果我们需要所有提交都反映为tfs上的签入,那么建议的rebase会有什么帮助。
在这种情况下,是否有任何方法可以将所有git提交作为单独的tfs签入获取?

最佳答案

“纸杯蛋糕”的答案很好,但我想补充一些东西…
如果您希望在此步骤中签入时比tfs工作流更接近并解决合并冲突,可以使用:

git tfs rcheckin --quick --autorebase

相当于:
git tfs pull --rebase
git tfs rcheckin

这并不一定是更好的选择,因为通常在pull --rebase(您的更改和来自tfs的更改被“合并”)和rcheckin(您将更改推送到tfs)之间,您至少应该构建您的解决方案并运行您的单元测试。
但我意识到有时候会容易得多,我的团队(所有的tfs老用户)只想这么做!
您还应该知道,在pull --rebase步骤中,您的更改将与您的团队的更改“合并”,因此在文件级别和tfs中进行合并时,您必须解决冲突。
rcheckin --quick --autorebase的情况下,如果存在冲突,命令将退出。你必须解决它们并再次启动命令。

10-02 04:24
查看更多