【问题标题】:git reverse cherrypickgit 还原樱桃采摘
【发布时间】:2011-01-25 09:18:55
【问题描述】:

我的问题是,有没有办法标记特定的提交,以便它不会被合并到另一个分支中,或者当我发出“git push”或从另一个存储库获取时它会被忽略?

我的理解是你可以挑选特定的提交合并到当前分支;有没有办法将提交标记为特定机器/存储库/分支的“本地”?


这个问题产生的问题,我目前正在以不同的方式解决。具体来说,我需要一个特定版本的 sqlite3-ruby (1.2.5) 才能在一台我没有 root 访问权限的 OSX 机器上处理 Rails 应用程序。现在,我已经提交在名为“mac-bundle”的本地分支上的 Gemfile 中指定版本,我的计划只是切换到该分支并在运行 bundle 之前合并必要的更改,如果我需要安装一个红宝石。

这是一个轻微但可以忍受的烦恼。似乎可能会出现类似的情况,其中相同的解决方法不太可接受,所以我想我会就不同的解决方案征求意见。

(与此类似的问题:Committing Machine Specific Configuration Files,我目前的解决方案类似于 Greg Hewgill 的回答。)

【问题讨论】:

    标签: ruby-on-rails git rubygems


    【解决方案1】:

    不,没有办法将提交标记为“不包含在合并中”。使用单独的分支非常接近。

    【讨论】:

    • 谢谢,这几乎是我所期待的,但我想我会问机会。
    【解决方案2】:

    不,你不能。但是,您可以在特定分支上“伪造提交”。

    为此,您可以

    git merge OtherBranchName --no-commit
    

    这会应用更改并将其保留在索引中以供您采取行动。然后,您可以手动删除应用的更改并提交。

    Git 然后认为 提交已经应用到这个分支上,然后你们俩都过着幸福的生活。

    但是,这可能是一次性的,专门用于处理配置文件。但您不应该将此作为普遍做法。

    【讨论】:

    • 这似乎与我所要求的非常接近,但它确实感觉像是以后可能会导致奇怪问题的东西。不过感谢您的建议!
    猜你喜欢
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多