【问题标题】:Git merge single file without rebasingGit合并单个文件而不变基
【发布时间】:2012-03-22 16:34:06
【问题描述】:

我有三个分支(我们称它们为 master、testing 和 feature)。这三个都是共享的,所以我不能在不给其他人造成问题的情况下对它们中的任何一个进行变基。目前,所有三个分支都发生了分歧(没有一个是快进的),因此最终需要进行一些合并,因为变基不是一种选择。

不过,目前我想将 Makefile 从测试中提取到功能中,因为功能是从主文件中分离出来的,并且在测试中添加了 Makefile。但是,我确实想要合并两个分支之间的任何其他更改。

我的理解是,如果我只是 git-add Makefile 到功能,当我将功能合并回测试(然后是 master)时,这将导致合并冲突,特别是如果我在我的功能分支中对 Makefile 进行任何进一步的添加。

我可以做 git-cherry-pick;但是,在测试中对 Makefile 进行了多次提交,我认为有比尝试将所有这些提交挑选到功能中更好的方法。

【问题讨论】:

    标签: git merge git-merge git-rebase


    【解决方案1】:

    你可以做一个

    git checkout branch_name <path(s)>

    这可以加载特定文件,但您也可以使用通配符和目录

    注意:

    • 路径是相对的
    • 路径使得git不会切换分支,所以你可以在gettihg文件后提交

    【讨论】:

    • 哇——我已经使用 checkout 来通过它的 SHA 切换到提交,并在文件上恢复到 HEAD,但我没有意识到你可以通过这种方式将两者结合起来。现在回想起来这很明显,但是谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多