用git将多个更改分解为单独的提交?

时间:2011-02-09 17:44:54

标签: git

如果我对一个大文件进行了多组更改,是否可以使用git将它们拆分为单独的提交?

4 个答案:

答案 0 :(得分:76)

您需要git add --patchdocumentation),这样您就可以选择要进行哪些更改。

答案 1 :(得分:17)

是的,你可以 - 使用git add -i选择你想要为每次提交分配哪些帅哥。您可以通过运行git help add并滚动到“交互模式”来获取文档。

答案 2 :(得分:1)

Williams answer完全有效。但有时手工做事更容易。例如,如果您在提交之前所做的更改之前意外更新了一些包含大量文件的第三方库。使用git add -p(与--patch相同),您需要浏览所有这些文件。因此,在这种情况下,只需暂存要提交的文件并使用所有其他更改进行第二次提交会更方便:

> git add /path/to/your/file.txt
> git commit -m "my commit message"
[master a0c5ea6] my commit message
1 file changed, 2 insertions(+), 1 deletion(-)
> git add --all
> git commit -m "updated library xyz"

答案 3 :(得分:0)

我经常使用的另一个选项仅仅是因为我忘记了patch选项:):

假设您已更新文件:aaa.txtbbb.txtccc.txt,并且您想在第一次提交时push aaa.txt文件,然后{{ 1}}和bbb.txt在第二次提交中:

ccc.txt

也许有些冗长,但是我认为它可以提供更多的控制权。

干杯!