git - 我应该先推还是先 pull ?

标签 git github git-push git-pull

请想象一下:

我和我的同事在 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/

相关文章:

linux - GIT 提交后,我做了 GIT 推送,但消息说一切都是最新的

git log 未按时间顺序排列

git - 为什么非裸远程的 `git push` 不是远程的 `git fetch` 的对偶

bitbucket - 从 SourceTree 推送到 BitBucket

java - Maven 构建要求提供日志文件和(权限被拒绝)

git - 如何仅删除 git 日志中间的特定提交

github - 在 Github 页面上使用 MathJax?

Azure 数据工厂链接 GitHub 存储库以进行源代码管理?

github - 如何在 github 和 2FA 中使用 Visual Studio 代码

Git 错误 : src refspec master does not match any error: failed to push some refs