`git rebase master`总是跟着'git pull --rebase`然后``git push --force`吗?

时间:2016-10-23 13:21:49

标签: git github version-control

我将我的分支改为主人:

my-branch>> git rebase origin/master

然后我看到状态:

➜  supporTool git:(my-branch) git status
On branch my-branch
Your branch and 'origin/my-branch' have diverged,
and have 12 and 11 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
nothing to commit, working tree clean

我理解提交顺序已在本地更改为远程(my-branch)

这是否意味着我总是需要git pull --rebase然后git push --force来制作具有相同提交顺序的遥控器?

1)如果我是这个分支上唯一的开发人员而且我在遥控器上领先于遥控器之前我为什么需要拉?

2)如果有其他人在我在本地进行了rebase之后但在使用git push --force推送之前将某些东西推到遥控器会发生什么?

2 个答案:

答案 0 :(得分:2)

这是基本规则:总是在rebase之前拉。

在您在集成分支之上(无论是master还是develop)重新设置您的工作之前,您需要确保您拥有人们已经提交的最新提交。整合分支。所以,你应该做什么:

  1. 保存您的工作。提交要保存在功能分支中的所有内容(my-branch),并确保git status报告没有未提交的更改。

  2. 查看集成分支(例如git checkout master)和git pull以获取最新信息。此时,您的本地分支master与远程跟踪分支origin/master完全相同。

  3. 查看您的功能分支(快捷方式:git checkout -至'跳回上一分支')。

  4. Rebase:git rebase master将您的功能分支置于最新的master提交之上。

  5. 发布:git push -u --force-with-lease origin my-branch:my-branch(第一次为您的功能分支正确设置跟踪)和git push --force-with-lease(每隔一次)。

  6. 这一系列步骤将确保您的功能分支始终清晰地位于master之上,并且在时机成熟时很容易合并。

答案 1 :(得分:1)

git rebase不适用于公共分支(如果您遵循功能或热修复工作流程,则为master或develop分支)

  1. 因为变基会改变历史记录
  2. 你究竟会在哪里修改?