如何使用 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 -df
和git 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 作为云存储在两台不同的机器上工作?的主要内容,如果未能解决你的问题,请参考以下文章