我有两台计算机A和B,并使用git sync一些文件,例如init.el。
A的回购托管在embuddle托管。 B的回购是本地的。
问题是:如何将A的更改合并到B中,并将最终的init.el推送到unfuddle(A),而不扩展B中的所有文件。
还是有更好的解决方案?
感谢。
答案 0 :(得分:2)
因此,如果您不想提取A
处修改过的文件,您可以这样做:
在B
,创建一个新的分支并将其推送到远程服务(如你所说,解开):
cd path/to/init.el
git branch featureModifiedInB
git checkout featureModifiedInB
git push origin featureModifiedInB
在A
,提取在B
创建的分支的更新,管理合并&冲突:
cd path/to/init.el
git pull origin featureModifiedInB // Or you can do fetch and manually do merging.
git checkout master
git merge featureModifiedInB
// After solve the conflict if it exists.
git push origin master
确保使用B
的人无法看到使用A
的人编辑的文件。但这会导致问题:pB无法获得有关他/她创建的代码的反馈。但是pA也可以修改featureModifiedInB
分支并让它被pB拉(妈妈......有点麻烦......)。
答案 1 :(得分:0)
有几个选择:
git push -f origin master
。请注意,强制推送会给从您分支并希望合并的任何人带来一些问题。答案 2 :(得分:0)
如果A和B完全不相关(正如你所说“A的文件不知道B的文件,反之亦然”),那么你不需要合并它们。只需按A和B,不要合并它们。
如果您想要更多分离,请创建另一个存储库以容纳B中的工作。使用unfuddle允许/禁止访问。