如何解决Git rebase 到分支,但将所有差异视为提交
我确定以前有人问过这个问题,但我不知道如何表达查询。
这是一个场景:我有一堆从我的 .bashrc 加载的 bash 脚本,我将它们存储在一个私有的 github 存储库中,以便我可以在计算机上使用它们。每台计算机都有自己的怪癖,所以我为每个计算机都有一个分支。我在我的工作计算机上启动了这个项目,所以 master
有一堆与我的家庭环境无关的代码。
在那些分支中,我已经删除了与工作相关的更改,但是如果我可以让 work
成为自己的分支并使master
成为基础的、非定制的一组代码。这样,每当我在 work
分支中进行更改时,当我将家用计算机重新定位到 master
时,我不会遇到有关已删除文件的合并冲突。但是,我想对适用于我所有分支的 master
进行更改;如果我随后将 work
重新设置为 master
--它删除了我的工作代码--work
将收到这些删除内容。
如何将 master
分支到 work
,删除 master
上与工作相关的更改,然后将 work
重新设置为我清理过的 master
删除 work
中所有与工作相关的代码?
我可以使用 git rebase --interactive
并将我所有的工作更改从一开始就拆分出来,但这对于一个很常见的操作来说似乎很乏味。
我看到了 git rebase --onto
和 git filter-branch
,但从我读到的内容来看,这些都不是正确的方法。
解决方法
如何将 master 分支到工作中,删除 master 上与工作相关的更改,然后将工作重新设置回我清理过的 master 上,而不删除工作中所有与工作相关的代码?
变基到 master 将使用... rebase --onto
:
git rebase --onto master $(git merge-base master work) work
这将在清理过的 master 上重放你的提交
git merge-base master work
|
m--m--m--M (master,cleaned-up)
\
w--w--w (work)
git rebase --onto master $(git merge-base master work) work
m--m--m--M (master,cleaned-up)
\
w'--w'--w' (work,rebased)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。