如何将上游分支设置为与分支相同的名称

时间:2017-06-08 21:41:23

标签: git

如果我创建一个新分支并尝试推送它,我被告知我必须明确说明上游分支的名称需要是什么。

> git checkout -b feature/long-branch-name-I-dont-want-to-have-to-type-out
Switched to a new branch 'feature/long-branch-name-I-dont-want-to-have-to-type-out'
> git push
fatal: The current branch feature/long-branch-name-I-dont-want-to-have-to-type-out has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin feature/long-branch-name-I-dont-want-to-have-to-type-out

有没有办法做到这一点,而无需输入上游分支的名称?我几乎始终希望它在服务器上与本地名称相同。

有没有办法像git push --set-upstream <current_branch_name>那样做什么,而不管当前的分支名称是什么?

3 个答案:

答案 0 :(得分:7)

配置git config

$ git config --global push.default current

现在,在结帐到分行后,您应该只使用git push

$ git checkout -b new-branch
$ git push                    # similar to git push -u origin new-branch

您也可以使用HEAD代替当前分支名称。

$ git push -u origin HEAD

N.B。 HEAD和本地当前分支通常保持相同的状态。

答案 1 :(得分:2)

[编辑] sajib khan's first answer, setting push.default to current将启用推送,但实际上并未设置上游。这意味着在未来git fetch之后,您的Git将不会报告前/后计数,并且您的Git将不知道上游用于git rebasegit merge(或{{尽管我建议避免使用git pull)。

您可以使用[编辑,如答案的第二部分]:

git pull

如果需要,这会在另一个Git上创建分支,以便您的Git获取git push -u origin HEAD 变体。然后,在任何情况下,它都设置了您的分支上游的(可能是新的)远程跟踪分支。但是直到origin/实际存在,您才能将其设置为上游。 1

1 实际上,你可以,你就是不能用origin/feature/long-branch-name-I-dont-want-to-have-to-type-out来做。并且,您无论如何都不想再输入它。要“手动”执行此操作,您需要:

git branch --set-upstream

这意味着要输入三次(!),或者给自己写一个脚本。

答案 2 :(得分:0)

这里有一些方便的git命令可以为您提供帮助。

<android.support.v7.widget.CardView android:scaleType="centerInside" android:layout_width="34dp" android:layout_height="34dp" android:clipChildren="false" android:clipToPadding="false" android:elevation="12dp" android:shape="ring" app:cardCornerRadius="17dp"> <ImageView android:id="@+id/avatar" android:layout_width="49dp" android:layout_height="49dp" android:layout_marginLeft="-8dp" android:layout_marginTop="-5dp" android:src="@drawable/blank" /> </android.support.v7.widget.CardView> ->返回当前分支名称

git rev-parse --abbrev-ref HEAD->将当前分支设置为跟踪git branch -u <remote>/<branch>

我经常做这种事情,并利用别名来帮助我。

<remote>/<branch>

参考: