我如何将我最近的承诺转移到一个新的分支机构,并在这些承诺完成之前重新定义主? 例如:
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
当前回答
这里的大多数解决方案计算了你想回去的承诺数量,我认为这是一个错误的方法,计算需要计算。
你可以简单地通过你想要的承诺的承诺,或者换句话说,你想要的承诺是最后的承诺:
(重定向自Commit Hash)
为了避免这一点:
1) git checkout master
2) git branch <feature branch> master
3) git reset --hard <commit hash>
4) git push -f origin master
其他回答
我不得不将7个承诺从一个旧行业转移到一个新行业。
git checkout old-branch # in the example, master
git reset --hard h4sh # h4sh is the hash for the commit
git checkout -b new-branch
git push origin new-branch
在 git checkout new-branch 之后,我得到了好 git log 和 git 状态,但是,当我访问旧行(git checkout old-branch)时,我得到了“git 落后于 7 行,可以快速推进”。
git checkout old-branch
git status
> git is behind by 7 commits and can be fast-forwarded
git push origin old-branch -f
在这一步之后,最后7个承诺仅适用于新分支,而以前的承诺则适用于Bitbucket树的旧分支和新分支。
如果你只需要将所有的无缝承诺转移到一个新的分支,那么你只需要,
创建一个新的分支从当前一个 :git 分支新分支名 推你的新分支: git 推起源新分支名 转换你的旧(当前)分支到最后一个推 / 稳定状态: git 重新设置 - 硬起源 / 旧分支名
有些人也有其他上流而不是起源,他们应该使用适当的上流。
git reset HEAD~3
git stash
git checkout newbranch
git stash pop
如果你的主要目标是旋转回主 你想保持文件变更 你不关心错误的命令上的消息 你没有推,但 你想这很容易记住 你不想要如临时/新分支, 查找和复制命令, 和其他头痛等并发症
这是什么不做
目标
OP表示,目标是“在这些承诺完成之前重新掌握”而不失去变化,而这个解决方案就是这样。
不要这样做,如果你推了大师的变化
如果你只是重新编写你的本地大师没有影响,当它被推向上流,但推一个重新编写的历史给合作伙伴可能会导致头痛。
如果你是像我这样的人,你正在使用Visual Studio,那么你可以这样做:在我的情况下,我想把最新的承诺交给另一个分支。
右键单击前一个(委托)。
此分類上一篇
因此,所有承诺变更将出现在 Git 变更板上。
此分類上一篇
到您的目标分支或从右下角创建一个新的分支。
此分類上一篇
在“Git Changes”中,双击您的最新 Stash. “Stash details” 面板将被打开. 点击“Pop”,然后解决冲突(如果存在)。
此分類上一篇
最后,做你的改变。
從其他文章中採取一些想法,避免任何與重新安裝有關的事情,並且非常偏見,我的解決方案是:
git 分支 # 更改可在新分支 git 推 # 上传,您可能需要与“--set-upstream”混淆,例如 git 推 --set-upstream https:/// 检查新分支在 git 通过 GUI 破坏现行目录从 git 存储库重新克隆
我不自豪,但我保留了我的数据。