Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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_Syntax - Fatal编程技术网

如何简单地为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>