Git:查找用于推送到原点的本地分支

Git:查找用于推送到原点的本地分支,git,Git,git新手 我现在的处境是,我有很多本地分支机构,我想追踪我正在工作的分支机构,以推动对源代码的更改 我可以使用什么git命令 我做了git日志origin/branch7,它返回了一大堆提交 特别是这一点: commit 5473e16761f4074a69321b671f88e6a66103c41f Author: Me Date: Mon Jan 13 12:17:26 2014 +1100 Encapsulate static inner class. Formatted

git新手

我现在的处境是,我有很多本地分支机构,我想追踪我正在工作的分支机构,以推动对源代码的更改

我可以使用什么git命令

我做了git日志origin/branch7,它返回了一大堆提交

特别是这一点:

commit 5473e16761f4074a69321b671f88e6a66103c41f
Author: Me
Date:   Mon Jan 13 12:17:26 2014 +1100

    Encapsulate static inner class. Formatted code.
我如何使用提交ID来跟踪我用于推送这些更改的本地分支?

您可以使用:

git branch --contains <commit id>
做了一些阅读和跑步:


上面列出了我为所有本地分支机构所做的所有承诺。这使我能够跟踪我正在为该特定提交工作的本地分支

这个问题最终没有确定的答案。问题归结为这样一个事实,即您可以从任何提交ID推送到任何远程设备上的任何可写名称:

git push +1234567:origin/bluebranch
假设您有一个commit,其ID可以缩写为
1234567
,这将连接到名为
origin
的远程服务器,并要求它强制更新其分支
bluebranch
的概念,使其成为commit
1234567
(好吧,无论该本地commit ID的完整SHA-1是什么)。在你自己的回购协议中,承诺根本不需要是分支机构的尖端;它必须存在

(即使使用
+
--force
标志,遥控器也有权拒绝更新。但这完全是另一回事。)

您所能做的最好的事情就是查看哪些分支被设置为或包含远程服务器上标识的提交。注意,分支名称简单地表明在提交图中的哪一个提交应该被认为是该分支的“提示”:

        D--E  <-- branch1
       /
A--B--C       <-- branch2
    \
     F        <-- branch3

D--E不知道你在问什么。。。当您执行git日志并看到您的提交时,它们会被推送到同一个分支。。。你不能从一个分支推到另一个分支。。。你的意思让我很困惑。@MMM:你可以从任何东西推到任何东西,这只需要额外的工作。:)谢谢塞吉奥!当我运行特定的提交时,它没有返回任何奇怪的结果。但后来我在指定的提交ID之前使用提交ID运行了它,它跟踪到了它。这个命令太棒了!
git push +1234567:origin/bluebranch
        D--E  <-- branch1
       /
A--B--C       <-- branch2
    \
     F        <-- branch3