Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何获取分支从何处开始的信息?_Git_Branch_Git Branch - Fatal编程技术网

Git 如何获取分支从何处开始的信息?

Git 如何获取分支从何处开始的信息?,git,branch,git-branch,Git,Branch,Git Branch,据我所知,提交对象只包含有关父对象的信息,所以如果我遇到类似这样的情况: * branch-1 | o | o master | o 这相当于 * branch-1 | o / o master | o 但是如果我的主人会继续呢 o master | o * branch-1 | | o o |/ o | o 在分支1上,git log--graph--decoration将仅显示: * branch-1 |

据我所知,提交对象只包含有关父对象的信息,所以如果我遇到类似这样的情况:

 *  branch-1
 |
 o
 |
 o  master
 |
 o 
这相当于

   *  branch-1
   |
   o
  /
 o  master
 |
 o 
但是如果我的主人会继续呢

 o master
 |
 o *  branch-1
 | |
 o o
 |/
 o
 |
 o 
在分支1上,
git log--graph--decoration
将仅显示:

 *  branch-1
 |
 o
 |
 o
 |
 o 

如果我知道我是从哪个分支开始的,我可以调用
git merge base master branch-1
,但是如果我不知道我是从哪个分支开始的呢


附言。
我还在学英语,但有时我会犯愚蠢的错误。我正在尽我所能,用英语写问题和答案,但是如果你能编辑我的帖子以防出现任何错误,我将非常高兴。我保证,你的努力不会白费。

Git确实没有这个概念,如果你想添加这个,你需要添加一个启发式,因为Git真正关心的是在树中的给定提交上附加一个标签。

Git确实没有永久存储这个信息,但你可能会发现。Git有回流

git reflog show <branch>
我认为这应该作为bash脚本/一行程序来使用。想法:对于每个分支,在给定的日期和时间确定其位置,并查看它是否是目标提交。如果您想更加灵活,可以测试
$(git merge base$(git rev parse$b@{$date\u time}))
是否是目标提交;也就是说,目标提交是否是当时给定分支的祖先


当然,当您的历史记录相对干净时,您可以始终使用
gitk--branchs
git log--graph--branchs[--oneline]
来查看一幅漂亮的图片。

我想您正在寻找

git log --graph --oneline --all
查看此线程以获得更详细的解释。

“但是如果我不知道我是从哪个分支开始的呢?”——你使用gitk吗?我认为,它在可视化不同分支之间的关系方面有着巨大的帮助。当然,还有很多其他可视化工具。我正在尝试通过CLI使用git。这有助于我更好地理解git是如何工作的,但是ASAIR gitk也不会告诉我“master”的名字,如果它已经很少了,那么你想实现什么?您似乎希望在分支开始的地方提交,但为什么?也许您可以在没有这些信息的情况下实现您的目标…请参阅它也有一点帮助,但是它仅在我的示例中返回以下信息:
7316b3d branch-1@{0}:commit:b11 07a06a branch-1@{1}:branch:Created from HEAD
。如果我错了,请纠正我,但所有(?)分支都是从头部创建的。啊,对了。(你可以在任何地方创建一个分支,但问题就在这里。)我想你确实遇到了更困难的情况。我会补充一点答案——虽然现在时间很短。值得一提的是,重登录只与您的本地存储库相关。只有当所有更改都发生在您自己的分支上时,使用它们的任何技术都是好的。否则,您将不得不依赖dag。
git log --graph --oneline --all