我对存储库的工作副本进行了一些更改。我没有承诺很长时间,所有的变化都被跟踪。
现在,我想先提交一部分更改,然后再提交另一部分更改,以便我可以恢复到每个更改。显然,这些部分更改都在不同的文件上。我是git的新手,并且担心如果我尝试其他地方建议的git rm --cache之类的东西,我可能会撤消所有的更改。请帮助。
答案 0 :(得分:3)
你可以git gui和'stage hunk for commit'或'stage line for commit'
答案 1 :(得分:3)
在命令行上,您可以使用
$ git add -p
选择提交的帅哥。
答案 2 :(得分:2)
我建议使用-p
选项git add
。这告诉git
交互式地询问用户是否提交大块。
$ git add -p src_file.c
$ git commit
$ git add -p src_file.c
$ git commit
...
使用此选项,您将获得每个块的提示:
Stage this hunk [y,n,q,a,d,/,s,e,?]?
按?可以获得以下帮助信息。
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk nor any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk nor any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
像这样添加您可以轻松地将更改拆分为同一个文件或
多个文件分成多个提交。有关更详细的说明
查看man (1) git-add
。
答案 3 :(得分:1)
您可以使用git add
命令将文件添加到提交中。例如,键入git add file.c
,然后file.c
将与下一个git commit
一起提交。未添加的任何文件都不会被提交。提交后,只需添加其他文件并再次提交。
您可以通过键入git status
来查看为提交暂存的文件。要添加所有文件,请键入git add .
。
答案 4 :(得分:1)
也许我不明白这个问题,只需添加一些文件并进行提交,然后重复这个过程。
git add file1 file2
git commit -m "Comment first commit comment"
git add file3 ...
答案 5 :(得分:0)