2

我在许多不同的项目中工作,并且想在多台计算机上使用 git-tfs,而无需额外的裸存储库。

我的想法是将 git-tfs 存储库存储在共享中,并将所有推送到工作分支中。将更改合并到 master 并推送到 tfs.

我希望我能做这样的事情:

从 tfs 克隆并创建一个“工作”分支

cd centralrepository
git tfs quick-clone --shared http://tfs.. $/tfsfolder .
git branch work

在客户端克隆工作分支

git clone --branch work --single-branch path/to/centralrepository

在客户端工作,提交并推送到中心

...
git commit -m"my work"
git push

再次在中央,从 tfs 获取更新,在“工作”中应用更改并推回

git tfs pull
git rebase master work
git checkout master     // rebase checks out the work branch
git merge work
git tfs checkintool

现在回到客户端,拉动并继续工作

git pull 
...
git push

但这不起作用,这对于有经验的 git 用户来说可能很明显

发生的情况是更改在中央和客户端中合并,导致冲突,因为 rebase 将应用更改两次。

是整个想法有缺陷还是我只是错过了一些步骤。

4

1 回答 1

1

在考虑更多场景时,我发现了错误。

work分支当然不应该在中央存储库中重新定位。work应该只是合并master然后快进。

它应该如下所示:

git tfs pull
git merge work
git checkout work
git merge -ff-only master
git checkout master
git tfs checkintool
于 2013-04-11T07:18:00.573 回答