当我对Git中的文件进行更改时,如何才能只提交部分更改?
例如,如何在文件中更改的30行中只提交15行?
当我对Git中的文件进行更改时,如何才能只提交部分更改?
例如,如何在文件中更改的30行中只提交15行?
当前回答
对于Atom用户,包github包括gitgui风格的交互式登台。有关快捷方式,请参阅软件包的文档。
使用Atom可以处理具有深色背景的主题(默认情况下,gitgui具有白色背景)。
其他回答
值得注意的是,要为新文件使用git-add--patch,您需要首先使用git-add--intent添加文件到索引:
git add -N file
git add -p file
如果您使用emacs,请查看Magit,它为emacs提供了一个git接口。它非常支持分段大块(文件的一部分)。
我相信git add-e myfile是最简单的方法(至少是我的首选),因为它只需打开一个文本编辑器,让您选择要暂存的行和不暂存的行。关于编辑命令:
添加的内容:
添加的内容由以“+”开头的行表示。您可以通过删除添加行来防止暂存任何添加行。
删除的内容:
删除的内容由以“-”开头的行表示。通过将“-”转换为“”(空格),可以防止临时删除它们。
修改内容:
修改后的内容由“-”行(删除旧内容)和“+”行(添加替换内容)表示。您可以通过将“-”行转换为“”并删除“+”来防止暂存修改线请注意,仅修改其中的一半可能会对索引带来混乱的变化。
git-add的所有细节都可以在git-help-add上找到
我想把lazygit添加到工具列表中。这是一个不错的命令行gui(即,即使不允许X转发,也可以通过ssh工作)。它具有广泛的功能(例如,选择要提交的行、交互式重基)、有用的着色,并且使用起来相对简单。可以以多种方式安装(go、conda、包管理器等)。仍在积极开发/维护。
我强烈建议使用Atlassian的SourceTree。(这是免费的。)这让事情变得微不足道。您可以快速轻松地分段单个大块代码或单个代码行。