在笔记本电脑和台式机上同步Git存储库

时间:2014-07-17 02:40:34

标签: git

在我的所有笔记本电脑和台式机上,我在/ home / sajan / Code中有一个目录,其中包含所有活动项目和存储库。

/家庭/ sajan /代码/ repository1 /家庭/ sajan /代码/ repository2 /家庭/ sajan /代码/ repository3

...等...

到目前为止,我依靠推送和拉出我的Gitlab服务器,以使我的项目在我的所有笔记本电脑和台式机上保持同步。这很棒。

然而,今天我决定将我的代码文件夹添加到我的ownCloud服务器并在我的所有笔记本电脑和台式机上同步它,就像我/ home / sajan / Documents,/ home / sajan / Music和一些应用程序一样配置目录以保持我的所有设备同步。

通过这种方式同步我的代码文件夹和git存储库,我是否可能冒险使用任何存储库?我99%有信心我不是,因为一切都在.git /中,并且没有需要更新的外部数据库或日志文件。只是确定一下。

我只是这样做,因为有时我会忘记在不同的笔记本电脑或台式机上从我的Gitlab服务器上取下更改并开始进行本地更改。哪个没问题,我可以很容易地合并,但如果我登录计算机时所有内容都自动同步,那就太棒了。

我想到的另一个选择是编写一个在登录时执行的bash脚本并进入我的每个存储库并运行git pull,但我决定反对这一点,因为合法的非快进合并。

TLDR;

如果我使用与Dropbox类似的东西在计算机之间同步我的存储库,而不是推送/拉出中央存储库,我是否冒险将任何存储库borking?

2 个答案:

答案 0 :(得分:0)

  

通过这种方式同步我的代码文件夹和git存储库,我是否可能冒险使用任何存储库?

可能,因为:

  • 同步涉及复制/同步您使用git pull
  • 的更多文件
  • 您正在同步所有,包括本地挂钩和私人文件
    • 钩子可能是特定于环境的
    • 私有文件可能包含不应添加和推送的敏感信息

我宁愿选择你的第二个选项(所有回购的推/拉脚本)

答案 1 :(得分:0)

当我们执行git push时,它不会推送到我们的工作文件。它推动了其他地方,如果我们想要在工作文件中进行这些更改,我们需要与这些文件同步。

并同步你需要运行命令:
git checkout <file_name>

所以,我认为除了你的脚本之外你还可以添加这个命令以确保你推送并且你也看到了更改(这个命令在你推送的系统上运行)。

如需更多帮助,请查看以下链接: How to sync working directory with master directory, when somebody push change to our local system?