我喜歡簡單地使用git push
將當前分支推送到配置的上游。爲此,我設置了git config push.default upstream
這確實是正確的。將當前分支推送到Gerrit
現在我試着爲Gerrit設置一個合適的遙控器,它會自動推送到refs/for/*
。
當時的想法是做這種方式:
[remote "gerrit"]
url = ssh://host:port/repo
push = refs/heads/*:refs/for/*
我想鍵入git push gerrit
,並期望混帳只能作用於當前分支推到正確的裁判。
不幸的是,現在git試圖推動所有地方分支Gerrit。 - 有沒有什麼辦法可以讓git只推送當前分支,就像上面的push.default
一樣?
更新:
- 推送操作只能使用一個單一的Refspec。
- 如果在命令行上給出了明確的refspec,則使用這一個。
- 如果沒有在命令行中給出,則使用使用遠程定義的那個。
- 如果遠程也沒有給出,只有push.default被考慮。
對於Gerrit,我需要一個像'branch:refs/for/branch'這樣的分支作爲當前分支的refspec。
問:
- 是否有一個明確的Refspec相當於=上游是做什麼push.default?
- 有沒有辦法將git配置成自動推送到正確的refs/for ref?
目前我發現的最好方法是將所有內容都包裝在一個單獨的腳本中,如建議的here。但我仍然不相信只有一個合適的參考是不可能的。
好的。只需在這裏查看不同的選項。我瞭解到'push.default'只有在沒有給出refspec的情況下才會考慮。如果你通過命令行提供一個refspec(比如'HEAD'),這將覆蓋遠程給定的refspec。因此它只會推到'ref/heads',這不是你想要的。有趣。 – VonC