Git rebase:强制推或拉推

Hen*_*art 2 git version-control github

我们正在公司里讨论毕业后该做什么git rebase。之后你rebase需要将更改推送到远程origin,但是当 git 不允许时我们应该怎么做呢?实际上,我们正在讨论当分支已经被推送时我们最常用的两种方法:

1 .git push -uf origin branch

原因:只有origin. 树将是flat

|
|
|
Run Code Online (Sandbox Code Playgroud)

2 .

git push -u origin branch
! [rejected]
  hint: Updates where rejected because the tip of your current branch is behind
  hint: Updates were rejected because the tip of your current branch is behind
  hint: "git pull ...") before pushing again.
git pull origin branch
git push -u origin branch
Run Code Online (Sandbox Code Playgroud)

原因:它将创建一个名为“Merged origin/branch intobranch blablabla”的提交,看起来没有必要。它不会是flap树。

|\
| |
|/
Run Code Online (Sandbox Code Playgroud)

** 强制标志看起来很奇怪

Jon*_*ink 5

如果你对一个分支进行变基,那么你就是在重写该分支的历史

如果该分支已被推送,您需要“强制推送”它,因为它的新提示无法通过之前的提示到达(这就是您收到该错误消息的原因)。

git push --force origin branch
Run Code Online (Sandbox Code Playgroud)