我有一个开发分支,我希望看到"分支创建和#34;之间的区别。现在。实际上,我对创建分支后的提交更感兴趣,这更像是"分支创建" +1。
我知道我可以在Git命令中使用像HEAD和HEAD~1这样的速记。我不知道如何指定"分支创建"。
"分支创建的Git简写是什么?#34;和"分支创建" +1?
答案 0 :(得分:2)
您的问题存在根本问题:究竟是什么"分支创建"? A"分支"它只是一个指向提交的指针,它本身具有对父提交的引用,父提交具有对父提交的引用,依此类推。[/ p>
如果我像这样绘制我的git历史:
a -> b -> c -> d (master)
\
-> x -> y (devbranch)
然后你可能会说答案是显而易见的。但事实是,历史也可以这样绘制:
a -> b -> x -> y (devbranch)
\
-> c -> d
这是同样的事情。没有特定的"创造"分支机构;它只是一个应用于提交链尖端的标签。
您可能能够使用merge-base
命令获得您正在寻找的答案,例如:
git checkout devbranch
git merge-base master HEAD
这将找到"两个提交之间用于三向合并的最佳共同祖先,"在简单的情况下,这可能是两个分支分歧的地方。
答案 1 :(得分:1)
您无法看到分支是如何创建的。此信息不会保存。分支现在指向提交,这就是它。它是一个非常轻量级的对象,很容易设置为指向其他一些提交,从创建以来就失去了分支的历史。
答案 2 :(得分:0)
您可以使用以下命令。
git diff topic...master
这意味着Changes that occurred on the master branch since when the topic branch was started off it
git diff
git diff [--options] <commit>...<commit> [--] [<path>...]
This form is to view the changes on the branch containing and up to
the second <commit>, starting at a common ancestor of both <commit>.
"git diff A...B" is equivalent to
"git diff $(git-merge-base A B) B". You can omit any one of
<commit>, which has the same effect as using HEAD instead.
此外,您可以看到Find the parent branch of a git branch有关如何查找父分支的信息。