1

我在运输过程中使用我的 macbook 和在家中使用我的电脑进行开发。我的项目文件夹包含所有 php 文件和 .git 文件夹。问题是,在我对我的 macbook 进行更改后,尝试使用 rsync 同步文件夹时遇到了很多冲突。

完成该工作流程的最佳方法是什么?只同步提交的文件,所以没有冲突?

4

3 回答 3

1

您可能会遇到很多冲突,因为您的配置core.autocrlf可能设置为原生,自动将行尾转换为 CR+LF (PC) 或 LF (Mac)。

参见例如“如何在 GIT 存储库中修复 CRLF 以避免合并冲突”。

我建议仅.gitattributes用于管理 eol 样式,如“ What's the best CRLF handling strategy with git? ”。

请参阅“如何在不同操作系统之间使用 git core.autocrlf 进行行尾转换”的更多详细信息

于 2013-03-30T19:48:04.373 回答
1

您不应尝试 rsync 未提交的文件或本地暂存的文件。使用 git 来暂存这些东西。您始终可以将它们提交到开发分支并将其合并回主线。Git 已经解决了这个问题。

于 2013-03-30T18:47:36.397 回答
0

忘记 rsync。只需将更改提交到本地 git 存储库,然后git pull --rebase在另一台计算机上吸收更改(在将其远程设置为指向第一台计算机之后)。

但是,这确实意味着每次同步时都必须连接计算机,这很乏味。一种不那么乏味的方法是在您控制的某个服务器上设置一个中间 git repo,然后从每台计算机同步到该联网服务器的 git 实例。

例如,如果您获得一个具有普通 shell 访问权限的 VPS 主机帐户,那么在其上安装 git 后,创建网络存储库就像git init --bare. 然后从你的每台机器上克隆它,你就可以开始了,只需推拉到中间仓库以在机器之间同步更改。

例如:如果您的 VPS 用户名在 IP 1.2.3.4 上运行的服务器上是“myuserid”,并且您在 VPS 主目录中创建了“mybarerepo”,那么要将其克隆到您的本地计算机上,请键入:git clone ssh://myuserid@1.2.3.4/~/mybarerepo

于 2013-03-30T20:53:07.297 回答