我需要不断重新输入我当前的分支名称。
例子
使用远程更改更新我当前的分支
git pull origin mySuperLongComplicatedBranchName
将我当前的分支推送到远程
git push origin mySuperLongComplicatedBranchName
我会将其简化为简单:
git pull origin *
或类似的东西。除非这样的东西已经存在。我已经习惯了git,但我只是希望我错过了一些简单的东西。
编辑:
添加额外信息以响应一条评论:
git show-ref --head
eaadd6401c4e179c105ac3565fe9bf53e2882f83 HEAD
eaadd6401c4e179c105ac3565fe9bf53e2882f83 refs/heads/myReallyLongBranchName
d6af452b1ad0a309a55061f9eeb6ab7ae83b6aef refs/remotes/origin/HEAD
eaadd6401c4e179c105ac3565fe9bf53e2882f83 refs/remotes/origin/myReallyLongBranchName`
所以看起来我的遥控器真的长分支看起来与当前的头部相同。哦,我知道了。我会
git fetch
然后我跑了
git show-ref --head again
bc1b96345913e911d03eb62763f8795cc20ecd8f refs/remotes/origin/myReallyLongBranchName
哦,太好了。现在我必须能够做git pull origin HEAD
.
我运行命令。 我得到一个Already up to date
.
然后我运行:
git pull origin mySuperLongComplicatedBranchName
我被拉下了变化。脸掌。
好像它不起作用。Git 知道我当前的工作分支名称是什么......我希望它只有一个符号。
您可以使用HEAD
作为当前提交树 HEAD 的"快捷方式":
git push origin HEAD
git pull origin HEAD
HEAD
通常指向当前签出分支的头部提交。
编辑:jtill 提醒我们@
作为HEAD
的快捷方式,所以它可以更简单:
git push origin @
git pull origin @
这些是我用来推送和拉取的快捷方式,包括获取分支名称(不仅仅是使用 HEAD,它指向提交并在拉取时会导致问题):
alias push='git push origin "$(git symbolic-ref --short HEAD)"'
alias pull='git pull origin "$(git symbolic-ref --short HEAD)"'
简短回答:
如果它是你创建的分支,告诉 git 与远程分支你想跟踪为上游。
git push -u mySuperLongComplicatedBranchName
然后,默认情况下,仅运行没有远程或分支名称的命令将使用您正在跟踪的上游分支:
git pull
长答案:
当您使用git push
发布分支时,如果它是您自己创建的分支,git 会要求您设置上游分支,以便能够跟踪本地和远程分支之间的更改。 这是通过使用--set-upstream
或较短的-u
选项来完成的。 因此,git push origin -u <name_of_your_branch>
在origin
远程上发布(并创建,如果不存在)您的分支。
从man git-push
:
-u, --set-upstream
For every branch that is up to date or successfully pushed, add upstream (tracking) reference, used by argument-less git-pull(1) and other commands. For more information, see branch.<name>.merge
in git-config(1).
这里的关键信息是:argument-less git-pull
.
在git pull
命令中既不指定远程的名称(通常为origin
),也不指定分支名称,这意味着:"从跟踪的分支拉取",即您定义为上游的分支。
因此,只需运行git pull
以合并上游分支上的更改,或者git pull -r
在远程更改上重新设置分支的基数即可。