如何在没有命名分支的情况下从跟踪分支合并?

时间:2012-12-12 09:30:12

标签: git branch

我通常会更新我的本地分支:

$ git fetch

$ git status
# On branch develop
# Your branch is behind 'origin/develop' by 1 commit, and can be fast-forwarded.
#
nothing to commit (working directory clean)

$ git merge --ff-only origin/develop

无论如何在没有命名远程分支的情况下编写最后一个命令?从git状态很明显,git知道当前分支是跟踪origin / develop。所以我正在寻找类似的东西:

$ git merge tracking

这样做的原因是,来回切换时很容易输入错误的分支(正如你可以看到我在这里使用--ff-only作为安全防范)。

2 个答案:

答案 0 :(得分:3)

将选项merge.defaultToUpstream设置为true:

git config merge.defaultToUpstream true

并且您可以省略要合并的提交:

git merge --ff-only

答案 1 :(得分:2)

您可以使用develop@{upstream}或更短的develop@{u}来引用设置为develop分支的上游的分支。如果在@之前没有提供分支名称,它将默认使用当前分支,因此当您在该分支上时,您只能使用@{u}

这些类型的引用将适用于其他命令以及合并,例如,您可以获得将与命令合并应用的提交列表:

git log ..@{u}

有关指定修订的部分,git rev-parse的手册页中记录了这一点。