2011-01-25 47 views
3

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

我的理解是,你可以选择具体的提交合并到当前的分支;是否有某种方法可以将提交标记为“本地”到特定的机器/存储库/分支?


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

这是一个轻微的,但生活易受烦恼。看起来可能会出现类似的情况,因为同样的解决方法不会完全可以接受,所以我想我会问一个不同的解决方案的想法。

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

回答

4

没有,没有标记一个承诺是“不被列入合并”的方式。使用单独的分支非常接近。

+0

谢谢,这几乎是我所期望的,但我想我会问这个机会。 – Joseph 2011-01-25 09:30:27

2

不,你不能。然而,你可以在特定的分支上“伪造一个提交”。

要做到这一点,你可以

git merge OtherBranchName --no-commit 

这适用的变化,它保留在你采取行动的指标。然后,您可以手动删除已应用和已提交的更改。

Git然后认为承诺已经应用在这个分支上,并且你们以后都愉快地生活。

但是,这可能是好的,特别是处理配置文件。但是你不应该把这做成一个普遍的做法。

+0

这似乎与我所要求的效果非常接近,但它确实感觉像以后可能会导致奇怪问题的东西。还是)感谢你的建议! – Joseph 2011-01-27 17:47:35