我在运输过程中使用我的 macbook 和在家中使用我的电脑进行开发。我的项目文件夹包含所有 php 文件和 .git 文件夹。问题是,在我对我的 macbook 进行更改后,尝试使用 rsync 同步文件夹时遇到了很多冲突。
完成该工作流程的最佳方法是什么?只同步提交的文件,所以没有冲突?
您可能会遇到很多冲突,因为您的配置core.autocrlf
可能设置为原生,自动将行尾转换为 CR+LF (PC) 或 LF (Mac)。
参见例如“如何在 GIT 存储库中修复 CRLF 以避免合并冲突”。
我建议仅.gitattributes
用于管理 eol 样式,如“ What's the best CRLF handling strategy with git? ”。
请参阅“如何在不同操作系统之间使用 git core.autocrlf 进行行尾转换”的更多详细信息
您不应尝试 rsync 未提交的文件或本地暂存的文件。使用 git 来暂存这些东西。您始终可以将它们提交到开发分支并将其合并回主线。Git 已经解决了这个问题。
忘记 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