gpt4 book ai didi

git - 在 git 中以非交互方式展示大块头

转载 作者:太空狗 更新时间:2023-10-29 13:26:28 26 4
gpt4 key购买 nike

git add -p 命令允许交互式暂存 block 或文件的一部分 (https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging)。

有没有办法以非交互方式展示大块头?说吧,我有这些帅哥:

$ git diff
diff --git a/test.txt b/test.txt
index 77e67ac..34eabb1 100644
--- a/test.txt
+++ b/test.txt
@@ -1,4 +1,4 @@
-this is the first change
+this is the first change, don't stage it!



@@ -6,5 +6,5 @@ this is the first change



-this is the first change
+this is the second change, stage it!

如果不通过交互式菜单运行单个命令(如 git add -p 2)来暂存第二个 hunk 会很好。

注意:此处提到了一种解决方案 (How to stage chunks non-interactively in git?),但它涉及多个命令和编辑补丁文件的额外步骤。

这什么时候有用?假设我正在编辑一个冗长且重复的 JSON 文件,并且在运行 git diff 之后,我知道我想暂存所有其他大块。我不想单独检查每个大块头;我只想告诉 git “上演第 2、4、6、8 等大块头”。

这在尝试使用自定义脚本与 Sourcetree 交互时也很有用(它可以与 hunk 一起工作)。

最佳答案

如果您能够手动或自动(例如,感谢 sed)编辑您的补丁(感谢 git diff 生成的补丁),您可以暂存 hunks非交互式感谢以下命令:

git apply --cached patchfile

PS:我实际上可以在这里找到您问题的答案:https://stackoverflow.com/a/31498768/7009806

关于git - 在 git 中以非交互方式展示大块头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com