git revert cherry pick

时间:2011-01-25 09:18:55

标签: ruby-on-rails git rubygems

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

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


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

这是一个未成年人,但却可以让人流连忘返。似乎可能会出现类似的情况,即相同的解决方法不会被接受,所以我想我会就不同的解决方案征求意见。

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

2 个答案:

答案 0 :(得分:4)

不,没有办法将提交标记为“不包含在合并中”。使用单独的分支几乎就像它一样接近。

答案 1 :(得分:2)

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

要做到这一点,你可以

git merge OtherBranchName --no-commit

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

然后Git认为已经在这个分支上应用了提交,之后你们都幸福地生活着。

然而,这可能是一次性的,特别是处理配置文件。但你不应该把它作为一般做法。