如何简单地为git中的一个变更集获取补丁?
语法非常强大,但我找不到如何简化以下内容:如何简单地为git中的一个变更集获取补丁?,git,syntax,Git,Syntax,语法非常强大,但我找不到如何简化以下内容: git diff 1a2e^..1a2e 不写两遍树的sh1 现在是否有“下一步”语法,类似于: git diff 1a2e^..NEXT 或 ? 如果1a2e是已知版本,则另一种可能有用的“下一步”语法: git cherry-pick 1a2e+NEXT..origin/featureBranch ^^“cherry从1a2e到master选择任何东西,除了1a2e本身”git show 比如说 不,你不能提到孩子提交,家长对此一无所知。而
git diff 1a2e^..1a2e
不写两遍树的sh1
现在是否有“下一步”语法,类似于:
git diff 1a2e^..NEXT
或
?
如果1a2e是已知版本,则另一种可能有用的“下一步”语法:
git cherry-pick 1a2e+NEXT..origin/featureBranch
^^“cherry从1a2e到master选择任何东西,除了1a2e本身”git show
比如说
不,你不能提到孩子提交,家长对此一无所知。而且可能不止一个,没有特定的顺序。你可以做
git log-1-p sha1
我已经建立了一个q'n的解决方法
它将从git日志中获取当前分支中的子id您的意思是:“您不能引用父提交,子级对此一无所知”?!这是合理的不,child是正确的术语,但它取决于您如何看待提交树。它在git log和其他显示多个提交的命令中的显示方式,可能看起来顶部的提交是父级的,下面的提交是子级的,但情况正好相反:树的根是最底部的提交,顶部的提交是最近的、最年轻的提交。列出提交的所有子项应该是一个简单的操作(它是对整个存储库的搜索操作,所以可能不快,但仍然很简单)。不过,我看不出有什么好办法。下面是我的一个非常有用的尝试:
foo=commitsha1;git版本列表——家长$fooawk“/$foo/{print\$1}”
@AlanCurry,列出所有可访问的子项是可能的,但引用其中一个不依赖于特定存储库的子项是不可能的。是的,但该命令很少使用,因此,日志的修饰符更容易记住。您可以使用git log--topo order--reverse--format=%H$commit..HEAD | HEAD-n2 | tail-n1
,顺便说一句;-)获得下一次提交我累了,当然你可以用sed-n-e2p
替换head-n2 | tail-n1
。或者只替换tail-n1,因为{{{sed-n-e2p}会给出第二个但不是最后一个;)sed给了我第二行,这正是我需要的,因为我有一个相反的顺序,所以这将是最后一行,但从头部到你的承诺。
git cherry-pick 1a2e+NEXT..origin/featureBranch
git show <tree-ish>