Git 还原所有特定于分支的更改,以便分支反映主
是否可以在不丢失历史记录的情况下恢复对特定分支所做的所有更改 我很久以前分支了master以隐藏特定功能,但现在这个分支必须与master相同,但我需要完整的分支历史Git 还原所有特定于分支的更改,以便分支反映主,git,Git,是否可以在不丢失历史记录的情况下恢复对特定分支所做的所有更改 我很久以前分支了master以隐藏特定功能,但现在这个分支必须与master相同,但我需要完整的分支历史 master->branched->(还原剥离)->branched=master 分支现在应该反映主控,尽管我希望在分支中进行提交,并提供到达主控所需的所有更改 我能想到的最简单的方法是复制主文件的源文件,并在分支的中删除/粘贴文件,但我担心的是,在以后从主文件合并时,这是否会产生冲突?您可以尝试在挤压模式下从主文件还原和重定基
master->branched->(还原剥离)->branched=master
分支现在应该反映主控,尽管我希望在分支中进行提交,并提供到达主控所需的所有更改
我能想到的最简单的方法是复制主文件的源文件,并在分支的中删除/粘贴文件,但我担心的是,在以后从主文件合并时,这是否会产生冲突?您可以尝试在挤压模式下从主文件还原和重定基址 首先,您需要从分支一开始就恢复特定于分支的提交。为此,请使用以下方法: 然后,您将在附属分支上获得1个提交,其中包含自分支拆分以来主分支的所有更改
git checkout topicbranch
git rebase -i master
并为每次提交选择挤压。编辑:
Preuk的解决方案不适用于我(Git 2.2.1),但这些命令可以工作:
$ git checkout branched
$ git revert -n master..branched
$ git commit -m "Revert to master"
初始职位:
我建议在专用分支上使用git-format-patch
后跟git-am
,使用git-rebase-I
挤压提交,然后在分支上应用结果分支
:
$ git checkout branched
$ git checkout -b tmpbranch
$ git format-patch -R master..branched --stdout | git am
$ git checkout branched
$ git merge tmpbranch
$ git branch -d tmpbranch
开始创建新分支
:
$ git checkout branched
$ git checkout -b tmpbranch
$ git format-patch -R master..branched --stdout | git am
$ git checkout branched
$ git merge tmpbranch
$ git branch -d tmpbranch
主机
和分支
之间应用反向提交:
$ git checkout branched
$ git checkout -b tmpbranch
$ git format-patch -R master..branched --stdout | git am
$ git checkout branched
$ git merge tmpbranch
$ git branch -d tmpbranch
$ git rebase -i branched
$ # Use the squash command for all commits except the first one
$ # and set the log message to "Revert to master" for instance.
$ git checkout branched
$ git checkout -b tmpbranch
$ git format-patch -R master..branched --stdout | git am
$ git checkout branched
$ git merge tmpbranch
$ git branch -d tmpbranch
这似乎是我正在寻找的,但它一直告诉我“-m”标志丢失了。如何获得相应的家长号码?它不允许我使用我理解为第一个给定分支的“1”。