我在很多不同的项目中工作,并希望在没有额外裸存储库的情况下使用来自多台计算机的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将两次应用更改,因此中央和客户端都会合并更改,从而导致冲突。
整个想法是否有缺陷还是我错过了一些步骤。
答案 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