同步两台计算机并使用git

3
这是我的情况:
我有两台机器,一台桌面电脑和一台笔记本电脑,它们的主目录使用unison进行同步。这个设置很好用,因为我可以随时携带工作并使所有东西随时可用。现在我想在这个混合体中加入git。
我在bitbucket.org上设置了一个远程仓库。我想能够定期从任何一台机器提交代码(因为两台机器都同步)。但是我在想,如果我在两台机器上都设置相同的git,会不会产生冲突?另外,文件是使用unison同步的……这将如何影响git,这也是让我担心的事情。
如果您有任何指针可以告诉我如何实现这一点,那将非常有帮助。
谢谢大家,问候,
Sameer
2个回答

1
我不会通过unison同步Git目录。我将所有源代码存储库都保存在我的个人文件目录的src子目录中,并在unison中将其忽略。
从我的unison配置:
root = /home/igor/
root = ssh://example.com/

path = files

ignore = Path files/src/*

我考虑过这一点。但问题在于,我只偶尔提交代码(比如说当我添加一个功能完成时)。然而,当我四处移动时,我希望工作中的“src”与笔记本电脑中的“src”同步,这样当我回到家时,我可以继续在笔记本电脑上工作。 - anikomei
你可以在“src”目录中创建一个类似于“sources.list”的文件,列出你想要检查的存储库,并通过“unison”保持此文件同步(你可以在“unison”配置中使用ignorenot = Path files/src/sources.list指令)。然后,你需要一个构建脚本,用于检出“sources.list”中列出但尚不存在的所有存储库。但是,你仍然需要将所有存储库中的提交推送到远程服务器上,以使它们可在其他计算机上使用,如果你不想用“unison”同步整个存储库,则没有其他选择。 - igor
我不介意使用unison同步我的仓库目录。但是这样做会产生冲突吗?我希望能够在笔记本电脑或台式机上都能提交代码。从一个设备切换到另一个设备应该是无缝的。 - anikomei
2
如果你先在一台机器的repo中做了某些事情,然后在另一台机器上的同一repo中做同样的事情而没有在两者之间同步,那么可能会产生冲突——也就是说,你必须确保每次切换机器时不要忘记同步。使用普通的Git来保持repo同步会更容易,因为你总是可以选择fetch-and-merge路线。 - igor
我明白每次切换设备都需要同步的烦恼,即使使用普通的Git...难道我不必每次切换时都要推送和拉取吗? - anikomei
你可以随时进行push/pull操作。就像是两个不同的开发者一起在同一个项目上工作。这其实正是Git的核心思想。 - igor

0

我使用Dropbox同步我的计算机,其中有一些git目录。因此,我的git文件也被同步了,而且我从来没有遇到过任何问题。


显然,同步Git文件不是一个很好的想法,因为它们往往会快速增长并占用我的Dropbox空间。 - anikomei

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接