是否可以在git中的两个repos之间设置适当的工作流程?

时间:2012-03-27 13:43:06

标签: git bazaar

我决定使用VCS在笔记本电脑和主计算机之间进行同步。那时候,我非常喜欢bzr,所以我用它。工作流很简单 - 在主机上我有一个脚本,它检测到附近的笔记本电脑的外观并执行以下步骤:

  • bzr pull
  • bzr update
  • bzr push
  • ssh到笔记本电脑,更新那里的回购

现在,我慢慢走向git - 不是最后一个原因是Github和git的优越速度。但我没能用git设置相同的工作流程。首先,它拒绝进入签出存储库 - 我用receive.denyCurrentBranch =“warn”解决了这个问题,然后执行git reset --hard。但是这样,如果他们没有被提交,我会丢失我在笔记本电脑上所做的任何更改。我尝试使用“git reset --merge”,但(与bzr不同)它拒绝合并一些冲突的文件。

有没有办法用git解决这些问题?

1 个答案:

答案 0 :(得分:1)

这对git来说是完全可行的,但在我看来,要么你没有完全描述你的环境(为什么要推?哪里是“起源”?),或者你在bzr和git之间混淆了术语。

在“主计算机”上(主要的回购没有改变,是一个“裸”回购,或者有第三个原始回购)这是一个好主意:

git commit -am "Auto committing"

无需在这里推。

然后ssh到笔记本电脑:

git pull <main_computer's remote> master

如果您当前都在同一个分支上,即当然是master。有更复杂的方法可以更安全地完成它,但对于最简单的2台机器而没有第三台机器的情况,这应该做到。最后,您可以为碰撞设置合并策略,请参阅git help merge