我应该先推还是拉?

sta*_*ack 3 git github git-pull git-push

请想象一下:

我和我的同事正在主分支上工作。我已经更改(添加和删除)一些代码。同时我的同事做了一些更改并将 a 推commit送到主分支。

现在我当前的工作目录与 master 分支不同,我想保留 master 分支和我的工作目录上的更改。

在这种情况下我该怎么办?

如果我做一个推送,主分支将和我的工作目录相同(我同事的更改将消失),如果我先执行拉取,自然我所有的更改都会消失。无论如何,我该如何处理这种情况?

ano*_*ode 5

使用 Git 时,您的更改和同事的更改都不会那么容易丢失。一旦提交了某些内容,就需要付出一些努力才能再次真正删除那些已提交的更改。这是 Git 的美妙之处之一。

在您描述的情况下,您无论如何都无法推送,因为 Git 会检测到远程存储库中存在本地存储库中不可用的更改。您将必须获取这些更改,然后将它们合并或在从远程存储库获取的更改之上重新设置更改。

为了方便起见,您可能应该做一个git pull. 如果可能,Git 会自动将您同事的更改合并到您的工作副本中。如果您的同事和您自己的更改以更复杂的方式发生冲突,则您必须手动合并更改。但如果你们都遵循结构化的 Git 工作流程,这实际上不应该经常发生。