如果我创建一个新分支并尝试推送它,我被告知我必须明确说明上游分支的名称需要是什么。
> 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>
那样做什么,而不管当前的分支名称是什么?
答案 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 rebase
或git 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>
参考: