我有两个分支,电子邮件和分期。分期是最新的一个,我不再需要旧的更改在电子邮件分支,但我不想删除他们。
我只想将所有staging的内容转储到电子邮件中,以便它们都指向同一个提交。这可能吗?
我有两个分支,电子邮件和分期。分期是最新的一个,我不再需要旧的更改在电子邮件分支,但我不想删除他们。
我只想将所有staging的内容转储到电子邮件中,以便它们都指向同一个提交。这可能吗?
当前回答
这将合并新旧两个分支,并在每次合并冲突时选择新版本:
git checkout old
git merge new
git checkout --theirs .
git add .
git commit
其他回答
这将合并新旧两个分支,并在每次合并冲突时选择新版本:
git checkout old
git merge new
git checkout --theirs .
git add .
git commit
如果你只想让“email”和“staging”这两个分支保持一致,你可以标记“email”分支,然后将“email”分支重置为“staging”分支:
$ git checkout email
$ git tag old-email-branch
$ git reset --hard staging
你也可以将“staging”分支重新建立在“email”分支上。但是结果将包含两个分支的修改。
如何:
git branch -D email
git checkout staging
git checkout -b email
git push origin email --force-with-lease
这个分支不会改变原来更新的分支,并让您有机会在最终提交之前进行进一步的修改。
git checkout new -b tmp
git merge -s ours old -m 'irrelevant'
git checkout old
git merge --squash tmp
git branch -D tmp
#do any other stuff you want
git add -A; git commit -m 'foo' #commit (or however you like)
git checkout email
git merge -m "Making email same as staging disregarding any conflicts from email in the process" -s recursive -X theirs staging