git能知道您当前的分支来自哪个分支吗?

git能知道您当前的分支来自哪个分支吗?,git,bash,alias,Git,Bash,Alias,我想创建一个git别名,让我可以从分支的原始分支同步我的分支 例如,如果我从中分支,git别名是否有办法识别它需要从源/中提取以进行同步?git不知道或不关心分支名称(如master或feature-31415或我们的开发过程)是如何使用AllyLongBranchNames的,因为它是如何产生的。它所知道或关心的只是名称存在并且当前指向某个特定的提交。尽管如此,每个分支都可以有一个上游设置 如果在没有参数的情况下运行git merge,则将配置的上游作为合并参数;如果在没有参数的情况下运行gi

我想创建一个git别名,让我可以从分支的原始分支同步我的分支


例如,如果我从中分支,git别名是否有办法识别它需要从源/中提取以进行同步?

git不知道或不关心分支名称(如master或feature-31415或我们的开发过程)是如何使用AllyLongBranchNames的,因为它是如何产生的。它所知道或关心的只是名称存在并且当前指向某个特定的提交。尽管如此,每个分支都可以有一个上游设置

如果在没有参数的情况下运行git merge,则将配置的上游作为合并参数;如果在没有参数的情况下运行git rebase,则将上游作为git rebase的参数,依此类推。通常,主节点的上游为原点/主节点。您可以将sbr short branch设置为具有origin/another long名称,因为他们希望以机器人作为其上游来替换我们,并且不再需要键入该名称

要将origin/zorg设置为邪恶的上游:

以及消除上游的污染:

git branch --unset-upstream evil
上游设置只是一个由两部分组成的字段:

$ git config --get branch.master.remote
origin
$ git config --get branch.master.merge
master
这就是master将origin/master作为其上游的方式和原因。1 git status也会自动使用上游,它是git push的默认推送目标,是将@{upstream}应用于分支名称的结果。这都是Git内置的。问题是,每个分支只有一个上游分支。如果这就是你所需要的,你就是好人

您可以添加自己的配置项,例如:2

但是Git本身中没有任何东西会使用这个。尽管如此,Git仍然是一个巨大的工具集,而不仅仅是一个简化的解决方案,它永远不能用于开发人员想象之外的任何事情:如果您愿意,您可以使用zorblax设置编写自己的代码

1您可以将一个本地分支设置为另一个本地分支的上游。在配置方面,这会将远程部分设置为.,必要时Git的其余部分会忽略它,例如,为了象征性地显示@{upstream}设置

这里还有一个隐藏的细节与分支名称映射有关,即当remote设置为remote的名称时。这是因为合并设置的原始值早于遥控器的发明。不过,通常情况下,这没有什么区别


二,。注意漫画的日期,十多年前。我怀疑红色按钮文本较新,尽管……

Git不知道或不关心分支名称,如master或feature-31415或我们的开发过程如何使用AllyLongBranchNames,因为TheyHateus是产生的。它所知道或关心的只是名称存在并且当前指向某个特定的提交。尽管如此,每个分支都可以有一个上游设置

如果在没有参数的情况下运行git merge,则将配置的上游作为合并参数;如果在没有参数的情况下运行git rebase,则将上游作为git rebase的参数,依此类推。通常,主节点的上游为原点/主节点。您可以将sbr short branch设置为具有origin/another long名称,因为他们希望以机器人作为其上游来替换我们,并且不再需要键入该名称

要将origin/zorg设置为邪恶的上游:

以及消除上游的污染:

git branch --unset-upstream evil
上游设置只是一个由两部分组成的字段:

$ git config --get branch.master.remote
origin
$ git config --get branch.master.merge
master
这就是master将origin/master作为其上游的方式和原因。1 git status也会自动使用上游,它是git push的默认推送目标,是将@{upstream}应用于分支名称的结果。这都是Git内置的。问题是,每个分支只有一个上游分支。如果这就是你所需要的,你就是好人

您可以添加自己的配置项,例如:2

但是Git本身中没有任何东西会使用这个。尽管如此,Git仍然是一个巨大的工具集,而不仅仅是一个简化的解决方案,它永远不能用于开发人员想象之外的任何事情:如果您愿意,您可以使用zorblax设置编写自己的代码

1您可以将一个本地分支设置为另一个本地分支的上游。在配置方面,这会将远程部分设置为.,必要时Git的其余部分会忽略它,例如,为了象征性地显示@{upstream}设置

这里还有一个隐藏的细节与分支名称映射有关,即当remote设置为remote的名称时。这是因为合并设置的原始值早于遥控器的发明。不过,通常情况下,这没有什么区别


二,。注意漫画的日期,十多年前。我怀疑红色按钮文本较新,但….

是源代码/父分支?是的。来源/将是的父分支。因此,运行别名将合并到。为什么不在中进行简单的合并呢?这就是我目前正在做的,但我工作的地方有相当长的分支名称前缀,因此如果有一种方法只使用git sync而不是git merge origin/,那将非常方便。git do
一般来说,我真的没有办法做到这一点。如果您对分支的起源做出假设,那么在某些有限的情况下,您可能能够做到这一点。但是,给定任意的分支A和B,git真正能说的是它们要么有一个或多个共同的祖先,要么没有——关于A是从B分支出来的,或者B是从A分支出来的,或者两者都是从C分支出来的,这已经被删除了……是源分支还是父分支?是的。来源/将是的父分支。因此,运行别名将合并到。为什么不在中进行简单的合并呢?这就是我目前正在做的,但我工作的地方有相当长的分支名称前缀,因此如果有一种方法可以只使用git sync而不是git merge origin/,那将非常方便。git通常没有任何方法可以做到这一点。如果您对分支的起源做出假设,那么在某些有限的情况下,您可能能够做到这一点。但是,给定任意的分支A和B,git真正能说的是它们要么有一个或多个共同的祖先,要么没有——关于A是从B分支出来的,或者B是从A分支出来的,或者两者都是从C分支出来的,没有存储任何信息,它已经被删除了……你也可以很容易地跟踪本地分支机构。@jthill:是的,我想提一下,但对于他的特殊用途来说,这似乎有点偏离目标。不过,我会把它添加到脚注1中。你也可以很容易地追踪当地的分支机构。@jthill:是的,我想提一下,但对于他的特殊用途来说,这似乎有点偏离目标。不过,我会把它添加到脚注1中。