我需要不断重新输入我当前的分支名称。
使用远程
中的更改更新当前分支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`
所以看起来我的遥控器reallyLongBranch看起来与当前的头部相同。哦,我知道。我会
git fetch
然后我跑了git show-ref - 再次
bc1b96345913e911d03eb62763f8795cc20ecd8f refs/remotes/origin/myReallyLongBranchName
太棒了。现在我必须能够git pull origin HEAD
。
我运行命令。我得到一个Already up to date
。
然后我跑:
git pull origin mySuperLongComplicatedBranchName
我将更改下拉了。面掌。
好像它不起作用。 Git知道我当前工作的分支名称是什么......我希望它只有一个符号。
答案 0 :(得分:6)
您可以使用HEAD
作为当前分支的“快捷方式”:
git push origin HEAD
git pull origin HEAD
HEAD
通常指向当前已检出的分支。
编辑:jtill提醒我们@
作为HEAD
的快捷方式,因此它可以更简单:
git push origin @
git pull origin @
答案 1 :(得分:0)
简短答案:
如果这是您创建的分支,请向git告知您要作为上游跟踪的远程分支。
git push -u mySuperLongComplicatedBranchName
然后,仅运行不带远程nor分支名称的命令,默认情况下将使用您正在跟踪的上游分支:
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
。
通过不指定远程名称(通常为origin
)或git pull
命令中的分支名称,意味着:“从被跟踪的分支中拉出”,即您定义为上游的分支。< / p>
因此,您只需要运行git pull
来合并上游分支上的更改,或者运行git pull -r
以使分支基于远程更改来重新建立您的需求。
答案 2 :(得分:0)
这些是我用来推送和拉取的快捷方式,包括获取分支名称(不仅仅是使用 HEAD,它指向一个提交并且会在拉取时导致问题):
alias push='git push origin "$(git symbolic-ref --short HEAD)"'
alias pull='git pull origin "$(git symbolic-ref --short HEAD)"'