GIT:更改新分支的来源

bvpmtnay  于 2023-09-29  发布在  Git
关注(0)|答案(2)|浏览(119)

我从staging开始了一个新的分支。我提交了3-4次,意识到我需要从master分支出来,而不是staging。我怎样才能改变我原来的分支,但仍然保留我的工作/提交?

bbuxkriu

bbuxkriu1#

git rebase --onto NEW_SOURCE_BRANCH FIRST_COMMIT_BEFORE_YOUR_WORK
NEW_SOURCE_BRANCH是您应该从其分支的位置
这将倒回你在FIRST_COMMIT_BEFORE_YOUR_WORK之后的提交,然后它将把它们重放到NEW_SOURCE_BRANCH上,然后把你放在那里,这时你可以创建这个工作的新分支,也可以硬重置你的旧分支。
注意,我会说使用origin/master作为FIRST_COMMIT_BEFORE_YOUR_WORK,但很可能master不再“存在”;但无论如何都很难找到

wh6knrhe

wh6knrhe2#

简易方法:

git log --oneline -4 #find all the commit hashes you want to get
git checkout origin/master
git checkout -b $newbranch
git chery-pick $A $B $C $D

你的历史记录是ABCD,因为你的第一次提交是A,然后是B,依此类推。
Cherry从你的staging分支中选择你需要的哈希值。你今天不会动态地发现你的更改,因为你只有3-4个提交,复制哈希,并将更改应用到你的新分支。

相关问题