2011-01-25 60 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