如何使用 git 作为云存储在两台不同的机器上工作?

Posted

技术标签:

【中文标题】如何使用 git 作为云存储在两台不同的机器上工作?【英文标题】:how to use git as cloud storage to work from two different machine? 【发布时间】:2022-01-24 04:37:10 【问题描述】:

我不确定我应该问什么问题,所以我会尝试解释我的情况。

我想使用两台不同的机器,一台在家里,一台在工作。在我看来,我计划使用 git 作为一种在线存储,所以当我想在家编写代码时,我可以git pull 然后git push 来保存更改并为工作中的机器做同样的事情。

我最近才意识到一个好的提交历史是多么重要。以前我只是提交“今天保存”消息。浏览后我找到了一种解决方案,即使用git commit --amend 制作连贯的提交历史并使用git push -f 强制推送。现在,每当我尝试 git pull 时,总是会收到警告“合并失败”。尝试了git clean -dfgit reset --hard,但它并不总是有效,为了快速修复,我最终重新克隆了整个项目。

有没有更好的做事方式?

编辑:我找到了解决方案。我想做的显然是在丢弃本地更改的同时与远程同步。可以使用git fetch origin && git reset --hard origin/master && git clean -f -d

【问题讨论】:

"每当我尝试 git pull 时都会收到警告'合并失败'" 请将对话显示为问题的一部分。你对 Git 说了什么,Git 又对你说了什么? 【参考方案1】:

提交历史非常重要,你应该写一些关于你所做的小消息(提交时多 15 秒,将来可以节省几个小时)。

您可以查看有关 --amend 的信息,通常说您不应该在共享或公共项目中使用此命令,因为它可能会造成混淆并产生很多冲突。

最好的解决方案是使用消息和相应的推送和拉取进行提交。但是,另一种基本解决方案可能是拥有 2 个分支:家庭和工作。您应该在分支、拉取和推送之间进行合并,以使您的存储库保持最新。如果您仍然收到警告,您可以使用git merge -X theirs branchxx 来避免这些冲突。它只接受所有有冲突的传入更改。我认为即使您必须进行提交、推送和拉取,为家庭和工作设置不同的分支也是一个好主意,这样您就可以看到您在每个地方所做的真实历史。

【讨论】:

以上是关于如何使用 git 作为云存储在两台不同的机器上工作?的主要内容,如果未能解决你的问题,请参考以下文章

使用git在两台机器间同步代码

使用git在两台机器间同步代码

如何实现Robot框架在两台不同机器上并行测试执行?

禁用 git EOL 转换

如何通过socket编程在两台机器之间发送文件?

如何使用 Git 对远程存储库进行初始推送?