git - `git pull --rebase` 什么时候会让我惹上麻烦?

标签 git rebase pull

我知道当我使用 git pull --rebase 时,git 将重写历史并将我的本地提交移动到我刚从中提取的分支中的所有提交之后。

我不明白的是,这怎么会是一件坏事。人们谈论在使用 git pull --rebase 时遇到麻烦,您最终可能会得到一个其他人无法 pull 的分支。但我不明白这是怎么可能的,因为你所做的只是重播你本地的、尚未公开的、在你从中提取的分支之上的提交。那么,问题出在哪里?

最佳答案

如果您只发布(推送)了您的一些提交,这只是一个问题,因为它们将更难 merge 到已经有这些提交的其他存储库。由于它们的 SHA1 已更改,Git 将尝试在这些存储库上再次重放它们。

如果您还没有(再次推送任何这些提交),任何 rebase 应该是安全的。

所以这里的问题是:您确定您正在 rebase 的所有本地提交实际上仍然是……本地的吗?
你确定 'git pull --rebase' 之后的 'git pull --rebase' 吗?

如果您在“私有(private)分支”上工作(一个您从未推送过的分支,但仅在您将推送的公共(public)分支上 merge 或 rebase ),那么您可以随时安全地 rebase 该私有(private)分支想要。

最终,这一切都取决于 workflow of merge你选择了to establish .

关于git - `git pull --rebase` 什么时候会让我惹上麻烦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2590260/

相关文章:

git - 如何使用 rebase 而不是 merge 来 pull 所有远程更改?

git rebase 在当前分支之上

Git Reset --hard 不要删除 git merge 错误

git pull 响应消息含义

android - 无法使用 adb 拉取文件

python - Git merge : conflict I don't know how to resolve

git - 从 TeamCity 访问 AWS CodeCommit

python3.8在mac上尝试git commit到bitbucket时没有这样的文件或目录

ruby-on-rails - Rails代码共享: gem vs plugin vs submodule?

git - 是否有可以解决错误 : remote branch 'refs/heads/foo/bar' not found? 的 git 命令