【问题标题】:How could I filter out the branch that commit wasn't committed to? [duplicate]我如何过滤掉提交未提交的分支? [复制]
【发布时间】:2022-01-24 12:06:03
【问题描述】:

我从master 创建了一个分支test。现在git branch --contains $commitid 用于在创建分支test 之前执行的对master 的提交表明它同时属于mastertest

git on  master [⇣?] 
❯ git log --oneline --all --graph
* f56a18a (tag: 0.12, origin/master) added 8
* 6eb3856 added 6
* a12dfb2 (HEAD -> master, tag: 0.11) added 6
* eff5df4 added 4
| * acf20e2 (origin/test) added 7
| * 86ec659 (test) added 5
|/  
| * a5d72eb (tag: 0.10) added 3
| * 84eded8 (tag: 0.9) added 3
|/  
* a449cf1 (tag: 0.8) added 3
* 9bf71a6 (tag: 0.7) added 3
* 2c9d219 (tag: 0.6) added 3
* 85bdd34 (tag: 0.5) added 3
* 26f2cd0 (tag: 0.4) added 3
* 52bd26a (tag: 0.3) added 3
* 5bfaece (tag: 0.2) added 3
* 2eef64e (tag: 0.1) added 3
* 3ee667e (tag: 0.0) added 3

git on  master [⇣?] 
❯ git branch --contains 3ee667e
* master
  test

git branch --contains 时,有什么方法可以过滤掉未提交更改的分支?

【问题讨论】:

  • 尽管有这样的比喻,但更改并没有提交到分支。 git 不存储该元数据。
  • Git 无法知道您在提交时所在的分支。该提交属于两个分支。
  • 提交不绑定到任何特定的分支。您可以回答的唯一问题是是否可以从分支访问提交,并且在您的情况下,您所询问的提交可以从主分支和测试分支访问。有了这些知识,将您的问题重写为“列出所有可从测试访问但也无法从主控访问的提交”可能更有意义。
  • 可能想阅读我的biteinteractive.com/… 以了解 Git 是什么、提交是什么、分支是什么。

标签: git


【解决方案1】:

不,这不是 Git 的工作方式。分支的名称不是提交的一部分,此信息不会保留在任何地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 2020-07-02
    • 2016-07-20
    • 2016-10-24
    • 1970-01-01
    • 2020-06-10
    • 2011-01-29
    相关资源
    最近更新 更多