我可以在不同计算机之间共享的文件夹中使用 git 还是应该将项目克隆到不同的文件夹中?
Can I use the git in a folder shared between different computers or should I clone the project inside a different folder?
我使用 Onedrive 在台式机和笔记本电脑之间同步文件。
我主要在笔记本电脑上工作,但我会开始更多地在家工作。
我可以直接进入该文件夹并开始提交更改,还是应该克隆该文件夹,因为我在另一台计算机上?
您应该避免在使用 OneDrive 或其他云同步服务的计算机之间同步 Git 存储库。最好独立克隆存储库。
云同步服务倾向于逐个文件同步,这在您处理单个文档时很好。但是,Git 存储库需要多个文件才能正常工作,并且它们以特定顺序写入这些文件以维护存储库的完整性。如果这些文件以错误的顺序同步,或者没有同步,存储库将会损坏。
此外,云同步服务有时会尝试恢复已从工作树中删除的文件或将旧版本的文件复制到工作树中。使用存储库时,这些不是您想要的行为。
如果您绝对必须在计算机之间共享一个包含工作树的存储库,您可以使用 rsync
和 ssh
来实现,但 仅当存储库完全静止时。您还应确保使用 --delete-after
标志,以便在存储库完全同步之前不会删除数据。
我使用 Onedrive 在台式机和笔记本电脑之间同步文件。 我主要在笔记本电脑上工作,但我会开始更多地在家工作。 我可以直接进入该文件夹并开始提交更改,还是应该克隆该文件夹,因为我在另一台计算机上?
您应该避免在使用 OneDrive 或其他云同步服务的计算机之间同步 Git 存储库。最好独立克隆存储库。
云同步服务倾向于逐个文件同步,这在您处理单个文档时很好。但是,Git 存储库需要多个文件才能正常工作,并且它们以特定顺序写入这些文件以维护存储库的完整性。如果这些文件以错误的顺序同步,或者没有同步,存储库将会损坏。
此外,云同步服务有时会尝试恢复已从工作树中删除的文件或将旧版本的文件复制到工作树中。使用存储库时,这些不是您想要的行为。
如果您绝对必须在计算机之间共享一个包含工作树的存储库,您可以使用 rsync
和 ssh
来实现,但 仅当存储库完全静止时。您还应确保使用 --delete-after
标志,以便在存储库完全同步之前不会删除数据。