[英]Git - push current branch shortcut
是否有快捷方式告訴 Git 將當前跟蹤分支推送到原點?
注意:我知道我可以更改默認推送行為,但我正在尋找一種不會更改默認行為的臨時解決方案。
例如,假設我在我將使用的分支feature/123-sandbox-tests
git push origin feature/123-sandbox-tests
這是乏味的。 我正在尋找一條捷徑,比如
git push origin current # <- example, not working
其中 git 知道當前是feature/123-sandbox-tests
。
編輯:從 2.0 版本開始,git 的默認行為已更改為更直觀的行為,這正是我想要實現的。 有關詳細信息,請參閱此 SO 問題。
編輯 2 : ceztko 的答案是最好的答案,因為它允許推送當前分支,而不管設置如何。
根據git push
文檔:
git push origin HEAD
A handy way to push the current branch to the same name on the remote.
所以我認為你需要的是git push origin HEAD
。 如果您還沒有推送到源,則git push -u origin HEAD
在本地分支中設置上游跟蹤信息也很有用。
您可以使用以下命令將 git 配置為推送到當前分支
git config --global push.default current
然后就做
git push
這會將代碼推送到您當前的分支。
您應該在沒有指定分支的情況下查看“git push”的默認行為中的類似問題
基本上它解釋了如何設置默認行為以僅執行git push
來推送當前分支。 大概你需要的是:
git config --global push.default current
其他選項:
我在我的 .bashrc 配置中使用這樣的別名
alias gpb='git push origin `git rev-parse --abbrev-ref HEAD`'
在命令$gpb
它獲取當前分支名稱並將其推送到原點。
這是我的其他別名:
alias gst='git status'
alias gbr='git branch'
alias gca='git commit -am'
alias gco='git checkout'
對於它的價值,終極捷徑:
在我的.bash_profile
我有alias push="git push origin HEAD"
,所以每當我輸入push
我知道我正在推送到我所在的當前分支。
最簡單的方法:運行git push -u origin feature/123-sandbox-tests
一次。 這會按照您習慣的方式推送分支,並在本地配置中設置上游跟蹤信息。 之后,您可以git push
將跟蹤的分支推送到其上游遠程。
您也可以通過將branch.<branch name>.merge
設置為遠程分支名稱(在您的情況下與本地名稱相同)並可選地將branch.<branch name>.remote
設置為要推送到的遙控器(默認為原點)。 如果您查看您的配置,很可能已經為master
設置了其中一個,因此您可以按照該示例進行操作。
最后,確保您考慮push.default
設置。 它默認為“匹配”,這可能會產生不希望的和意外的結果。 我認識的大多數人發現“上游”更直觀,它只推送當前分支。
這些設置的詳細信息可以在git-config 手冊頁中找到。
再想一想,在重新閱讀你的問題時,我認為你知道這一切。 我認為你真正要找的東西不存在。 bash 函數如何(未經測試):
function pushCurrent {
git config push.default upstream
git push
git config push.default matching
}
在 ceztko 的回答的幫助下,我編寫了這個小輔助函數來讓我的生活更輕松:
function gpu()
{
if git rev-parse --abbrev-ref --symbolic-full-name @{u} > /dev/null 2>&1; then
git push origin HEAD
else
git push -u origin HEAD
fi
}
它將當前分支推送到原點,如果尚未設置,還會設置遠程跟蹤分支。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.