我如何将我最近的承诺转移到一个新的分支机构,并在这些承诺完成之前重新定义主? 例如:
master A - B - C - D - E
为此:
newbranch C - D - E
/
master A - B
我如何将我最近的承诺转移到一个新的分支机构,并在这些承诺完成之前重新定义主? 例如:
master A - B - C - D - E
为此:
newbranch C - D - E
/
master A - B
当前回答
我怎么能离开这
A - B - C - D - E
|
master
到此?
A - B - C - D - E
| |
master newbranch
兩個命令
吉特分支 -m 主新分支
给予
A - B - C - D - E
|
newbranch
和
吉特分支大师B
给予
A - B - C - D - E
| |
master newbranch
其他回答
如果你只需要将所有的无缝承诺转移到一个新的分支,那么你只需要,
创建一个新的分支从当前一个 :git 分支新分支名 推你的新分支: git 推起源新分支名 转换你的旧(当前)分支到最后一个推 / 稳定状态: git 重新设置 - 硬起源 / 旧分支名
有些人也有其他上流而不是起源,他们应该使用适当的上流。
要做到这一点,而不重写历史(即如果您已经推出了承诺):
git checkout master
git revert <commitID(s)>
git checkout -b new-branch
git cherry-pick <commitID(s)>
那么,两支分支都可以在没有武力的情况下被推动!
最简单的方式就是这样做:
任命主分支到您的新分支(假设您在主分支):
git branch -m newbranch
2、从你想要的承诺中创建主分支:
git checkout -b master <seven_char_commit_id>
例如 git checkout -b master a34bc22
注意:新行业的上流将是起源/主流。
1) 创建一个新的分支,将所有更改转移到 new_branch。
git checkout -b new_branch
(二)然后回到旧的分支。
git checkout master
3、做吉·雷巴斯
git rebase -i <short-hash-of-B-commit>
4) 然后打开的编辑器包含最后3个承诺信息。
...
pick <C's hash> C
pick <D's hash> D
pick <E's hash> E
...
5) 更改选项下载所有这些 3 任务. 然后保存并关闭编辑器。
...
drop <C's hash> C
drop <D's hash> D
drop <E's hash> E
...
6) 现在最后3个命令从当前分支(主)中移除。 现在强烈推分支,在分支名称之前 + 标志。
git push origin +master
只有在这种情况下:
Branch one: A B C D E F J L M
\ (Merge)
Branch two: G I K N
我表演了:
git branch newbranch
git reset --hard HEAD~8
git checkout newbranch
我希望承诺我会成为头,但承诺是现在的。
要确保在历史上登上正确的位置,就更容易与承诺的哈希工作。
git branch newbranch
git reset --hard #########
git checkout newbranch