更改 git 分支的起点
Change the origin of git branch
我是这样创建分支的:
git branch MyBranch origin/test
test
是与 master 并行的分支。现在test合并到master
如何更改 MyBranch
的原点,使其指向 master
没有"origin"的分支。 "branch" 只是指向特定提交的标签。
如果您没有对 MyBranch 进行任何提交,那么您可以删除并重新创建它。
git branch -d MyBranch
git branch MyBranch master
如果您在 MyBranch 上做过工作,那么事情会稍微复杂一些。你的情况是这样的...
- A - B - C - D [master]
\
E - F [origin/test]
\
G - H [MyBranch]
MyBranch
在 origin/test
之上提交了 G 和 H。如果你想将 MyBranch
移动到 master
之上,那么你需要保留 G 和 H 中的工作。这可以通过变基来完成。
git rebase --onto master origin/test MyBranch
这表示将 MyBranch
中但不在 origin/test
(即 G 和 H)中的更改放在 master
之上。你得到...
G1 - H1 [MyBranch]
/
- A - B - C - D [master]
\
E - F [origin/test]
\
G - H
我是这样创建分支的:
git branch MyBranch origin/test
test
是与 master 并行的分支。现在test合并到master
如何更改 MyBranch
的原点,使其指向 master
没有"origin"的分支。 "branch" 只是指向特定提交的标签。
如果您没有对 MyBranch 进行任何提交,那么您可以删除并重新创建它。
git branch -d MyBranch
git branch MyBranch master
如果您在 MyBranch 上做过工作,那么事情会稍微复杂一些。你的情况是这样的...
- A - B - C - D [master]
\
E - F [origin/test]
\
G - H [MyBranch]
MyBranch
在 origin/test
之上提交了 G 和 H。如果你想将 MyBranch
移动到 master
之上,那么你需要保留 G 和 H 中的工作。这可以通过变基来完成。
git rebase --onto master origin/test MyBranch
这表示将 MyBranch
中但不在 origin/test
(即 G 和 H)中的更改放在 master
之上。你得到...
G1 - H1 [MyBranch]
/
- A - B - C - D [master]
\
E - F [origin/test]
\
G - H