请想象一下:
我和我的同事在 master 分支上工作。我已经更改(添加和删除)了一些代码。与此同时,我的同事做了一些更改并将 commit
推送到 master 分支。
现在我当前的工作目录与 master 分支不同,我想保留 master 分支和我的工作目录上的更改。
遇到这种情况怎么办?
如果我进行推送,主分支将与我的工作目录相同(我同事的更改将消失),如果我先进行 pull ,自然我所有的更改都会走了。无论如何,我该如何处理这种情况?
最佳答案
使用 Git 时,您和同事的更改都不会轻易丢失。一旦提交了某些内容,就需要付出一些努力才能再次实际删除那些已提交的更改。这是 Git 的优点之一。
在您描述的情况下,无论如何您都无法推送,因为 Git 会检测到远程存储库中存在本地存储库中不可用的更改。您将不得不获取这些更改,然后将它们 merge 或将您的更改重新定位在从远程存储库获取的更改之上。
为了简单起见,您可能应该执行 git pull
。如果可能,Git 会自动将您同事的更改 merge 到您的工作副本中。如果您的同事和您自己的更改以更复杂的方式发生冲突,您将不得不手动 merge 更改。但如果你们都遵循结构化的 Git 工作流程,那么这种情况实际上应该不会经常发生。
关于git - 我应该先推还是先 pull ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45172117/