git - 我如何使用 git 有选择地提交?

标签 git version-control

当我在 git 命令行中时,提交一些文件并保留其余文件以供另一次提交是相当困难的。如何让这变得简单?

最佳答案

其实很简单。您需要先将您想要的更改添加到索引:

git add file1 file2

然后

git commit

如果您删除了一个文件,add 会执行此操作。添加意味着“添加更改”,即使它是删除。

如果要添加所有更改:

git add -A

commit 上的-a 参数 表示添加跟踪文件 的所有更改并提交它们。所以

git commit -a

不会提交您创建的新文件。您必须明确添加它。

-m 参数 允许您避免打开编辑器来编辑您的提交消息,并使用您在 -m 之后输入的内容选项:

git commit -m "Use this message and don't open the editor"

有时这不是一个好主意。如果您只是尝试 merge 并遇到冲突,一旦您解决了冲突并提交,git 就会为您缓存一条非常好的消息。所以有一个 git commit 更好。

要有选择地添加文件,请在 git add 上使用补丁修饰符:

git add -p

这将提示您有关文件。这是非常强大的,因为您还可以指定文件的一部分,或者编辑要添加到索引的内容。 git commit 只会添加那些。

如果你想要一些不是 tortoisegit 的 gui 帮助(避免 windows shell 集成),请使用 git gui

这是解释索引(或暂存文件)的图表:

enter image description here

(来自 http://progit.org/book/ch2-2.html)

希望这对您有所帮助。

关于git - 我如何使用 git 有选择地提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5625934/

相关文章:

带有 "Dependencies"的 SVN 多个分支

tfs - 如何恢复 TFS 中的文件

Git - 在一个存储库下管理多个项目

git - 将 git 提交与 Team Foundation 工作项相关联

git - 没有注册源代码管理提供商 - 如何在 mac 上以可视代码注册 SCM?

git -- 如何从未完成的 merge 中恢复

reactjs - 世博会初始化不需要的 git repo

git - 从私有(private) GitHub repo 转移到公共(public)和私有(private)

version-control - 带有版本控制的 FitNesse 测试历史

git - git add -f 后忽略修改