为了账号安全,请及时绑定邮箱和手机立即绑定

只提交Git文件的一部分

只提交Git文件的一部分

Git
HUX布斯 2019-07-12 15:42:43
只提交Git文件的一部分当我对Git中的文件进行更改时,如何只提交一些更改?例如,在文件中更改的30行中,我如何只提交15行?
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

你可以用git add --patch <filename>(或-p,git将开始将您的文件分解为它认为合理的“大块头”(文件的一部分)。然后,它将提示您以下问题:

Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?

以下是每个选项的说明:

  • y

    为下一次提交做准备
  • n

    不要在下一次提交时使用这个块。
  • q

    退出;不要上演这个大块头或任何剩下的大块头。
  • a

    把这个家伙和所有后来的家伙放到档案里
  • d

    不要在文件中放置这个大块头或任何后半身。
  • g

    选择要去的地方
  • /

    搜索匹配给定正则表达式的块
  • j

    让这个大块头犹豫不决,看下一个未定的家伙
  • J

    让这家伙犹豫不决,看下一个大块头
  • k

    让这个庞克犹豫不决,见以前的未定之人。
  • K

    让这个庞克犹豫不决,见以前的大块头
  • s

    将当前的大块头分割成较小的块。
  • e

    手动编辑当前块
  • ?

    印刷机帮助

如果该文件尚未在存储库中,则可以首先执行以下操作:git add -N <filename>..之后你可以继续git add -p <filename>.

之后,您可以使用:

  • git diff --staged

    以检查您是否进行了正确的更改。
  • git reset -p

    在舞台上被错误地添加了大块头
  • git commit -v

    编辑提交消息时查看提交。

注意,这与git format-patch命令,其目的是将提交数据解析为.patch档案。

今后参考资料:GIT工具.交互式分期


查看完整回答
反对 回复 2019-07-12
?
BIG阳

TA贡献1859条经验 获得超6个赞

我相信git add -e myfile这是最简单的方法(至少是我的首选),因为它只会打开文本编辑器,并允许您选择想要分阶段的行和不想做的行。关于编辑命令:

新增内容:

添加的内容由以“+”开头的行表示。可以通过删除任何加法行来防止它们暂存。

删除内容:

删除的内容由以“-”开头的行表示。您可以通过将“-”转换为“(空格)来防止它们移除。

修改内容:

修改后的内容由“-”行(删除旧内容)和“+”行(添加替换内容)表示。您可以通过将“-”行转换为“并删除”+“行来防止修改。请注意,只修改这对的一半可能会给索引带来令人困惑的变化。

每一个细节git add可在git --help add


查看完整回答
反对 回复 2019-07-12
  • 3 回答
  • 0 关注
  • 4919 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信