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

我如何做git add-p

我如何做git add-p,git,Git,我知道GitAdd-p应用了一个补丁,这是git的一个重要特性。了解了。但是,我怎么能跳过回答git向我提出的每个问题的部分,而只是在我的第一个查询中键入这些问题,比如: git add -p "Filename" "Option selected" "Enter" git add-p的作用是: 以交互方式在索引和工作树之间选择大块补丁,并将它们添加到索引中 您寻求的选项将无法达到使用git add-p的目的 虽然我提倡花时间使用git add-p以交互方式查看更改,但您可以使用以下命令组合更

我知道GitAdd-p应用了一个补丁,这是git的一个重要特性。了解了。但是,我怎么能跳过回答git向我提出的每个问题的部分,而只是在我的第一个查询中键入这些问题,比如:

git add -p "Filename" "Option selected" "Enter"
git add-p的作用是:

以交互方式在索引和工作树之间选择大块补丁,并将它们添加到索引中

您寻求的选项将无法达到使用
git add-p
的目的

虽然我提倡花时间使用
git add-p
以交互方式查看更改,但您可以使用以下命令组合更快地查看代码:

git diff -w
git add -u
这允许您查看所有更改,然后将其暂存(注意仅跟踪的文件)。互动性较低,因此速度较快,但仍保持审查。
git add-p
的作用是:

以交互方式在索引和工作树之间选择大块补丁,并将它们添加到索引中

您寻求的选项将无法达到使用
git add-p
的目的

虽然我提倡花时间使用
git add-p
以交互方式查看更改,但您可以使用以下命令组合更快地查看代码:

git diff -w
git add -u
这允许您查看所有更改,然后将其暂存(注意仅跟踪的文件)。互动性更低,因此速度更快,但仍保持查看。

对于任何给定的文件F(其中F是完整路径,例如,
src/sub/lib.py
或其他),您现在随时可以使用三份F副本:

  • 提交的版本(位于
    标题
    @
    中的版本)
  • 索引或暂存区域或缓存中的中间版本(同一事物的三个名称),以及
  • 可以在编辑器中编辑的普通文件,名为F
git add通常做的是将F复制到索引版本中

索引最好描述为“下一次提交时将要提交的文件”。尽管一些命令,例如
git commit
,谈到了“空”提交,但这些提交实际上并不是空的:它们具有与上一次提交相同的所有文件。如果它们与上一次提交中的文件没有任何更改,则它们只是“空的”。因此,索引很少为空:它通常只包含上一次提交,直到运行
git add

通过对文件的这两个版本执行
git diff
,git add-p所做的是比较当前索引中的内容和工作树中的内容。然后,它允许您通过应用工作树版本和索引版本之间的一点点差异,一次更新一部分索引版本。但这是一个互动程序,所以它真的非常想和人类互动。它不是设计为以编程方式驱动的

如果你知道你想要,比如说,工作树版本的前半部分和索引版本的后半部分,有很多方法可以实现这一点。他们中的大多数人都很难做到正确。最简单的(因此也是最容易得到正确答案的)非交互式方法是保存工作树版本的副本,临时将其替换为要复制到索引中的版本,使用
git add
从工作树复制到索引,然后用保存的版本重新替换工作树版本

您还可以使用
git-apply--index--recont
将补丁的部分内容提供给
git-apply
。这就是
add-p
()所做的

最后,您要做的就是将文件的一些变体复制到索引中,这样头、索引和工作树版本都会有所不同。只要你知道将文件复制到索引中的技巧,你可以用任何你喜欢的方式来做这件事(特别是,在使用
git update index--cacheinfo
--index info
直接更新索引之前,必须在内容上运行任何行尾黑客和“清理”过滤程序)。

对于任何给定的文件F(其中F是完整路径,例如,
src/sub/lib.py
或其他),您现在随时可以使用三份F:

  • 提交的版本(位于
    标题
    @
    中的版本)
  • 索引或暂存区域或缓存中的中间版本(同一事物的三个名称),以及
  • 可以在编辑器中编辑的普通文件,名为F
git add通常做的是将F复制到索引版本中

索引可能最好描述为“下一次提交中的文件”。尽管有些命令,例如
git commit
,谈论“空”提交,但这些提交实际上并不是空的:它们与上一次提交的文件完全相同。它们只是“空的”因此,索引很少是空的:它通常只会充满上一次提交,直到您运行
git add

git add-p
所做的是通过对文件的这两个版本执行
git diff
来比较现在索引中的内容和工作树中的内容。然后,它允许您一次只更新一部分索引版本,只需应用工作树版本和索引版本之间的一点点差异。但是它是n交互式程序,所以它真的非常想与人交互。它不是被设计成以编程方式驱动的

如果你知道你想要,比如说,工作树版本的前半部分和索引版本的后半部分,有很多方法可以做到这一点。大多数方法都很难做到正确。最简单(因此也最容易做到正确)非交互式方法是保存工作树版本的副本,临时替换为要复制到索引中的副本,使用