当我对Git中的文件进行更改时,如何才能只提交部分更改?
例如,如何在文件中更改的30行中只提交15行?
当我对Git中的文件进行更改时,如何才能只提交部分更改?
例如,如何在文件中更改的30行中只提交15行?
当前回答
就像jdsumsion的答案一样,你也可以隐藏你当前的工作,但然后使用像meld这样的困难工具从隐藏中提取所选的更改。这样,您甚至可以非常容易地手动编辑大块,这在gitadd-p中有点麻烦:
$ git stash -u
$ git difftool -d -t meld stash
$ git commit -a -m "some message"
$ git stash pop
如果代码仍然有效,那么使用stash方法可以在提交之前进行测试。
其他回答
就像jdsumsion的答案一样,你也可以隐藏你当前的工作,但然后使用像meld这样的困难工具从隐藏中提取所选的更改。这样,您甚至可以非常容易地手动编辑大块,这在gitadd-p中有点麻烦:
$ git stash -u
$ git difftool -d -t meld stash
$ git commit -a -m "some message"
$ git stash pop
如果代码仍然有效,那么使用stash方法可以在提交之前进行测试。
对于emacs,还有gitsum
如果你碰巧在使用VS代码,那你就幸运了。选择要暂存的范围,然后使用Git:Sstage Selected Ranges暂存它们,如果需要,请提交。
我录制了一张gif图来演示我的意思:
在所有这些工具中,我最喜欢Fork(虽然不是免费的)!
与其他游戏相比,它使用起来非常时尚优雅,单击鼠标旁边的按钮可以进行大块或线条分段。
另一个选择是GitKraken,有趣但更复杂和强大!
对于使用Git扩展的用户:
在提交窗口中,选择要部分提交的文件,然后在右窗格中选择要提交的文本,然后右键单击所选内容并从上下文菜单中选择“暂存选定行”。