没有裸存储库的Git tfs

时间:2013-04-10 08:37:07

标签: git git-tfs

我在很多不同的项目中工作,并希望在没有额外裸存储库的情况下使用来自多台计算机的git-tfs。

我的想法是将git-tfs存储库存储在共享上,然后全部推送到工作分支。将更改合并到主服务器并推送到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将两次应用更改,因此中央和客户端都会合并更改,从而导致冲突。

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

1 个答案:

答案 0 :(得分:1)

在仔细考虑场景时,我发现了错误。

work分支当然不应该在中央存储库中重新定位。 work应与master合并,然后快速转发。

它应该是这样的:

git tfs pull
git merge work
git checkout work
git merge -ff-only master
git checkout master
git tfs checkintool