git
› Pro Git
› Atlassian Git Tutorial
› Pro Git 简体中文翻译
› GitX
dangyuluo
V2EX  ›  git

Git 如何只添加一行改动?

  •  
  •   dangyuluo · Oct 18, 2022 · 4987 views
    This topic created in 1477 days ago, the information mentioned may be changed or developed.

    比如某一次改动是添加了 2.1, 2.2, 2.3, 2.4 这四行

    @@ -1,5 +1,9 @@
     1
     2
    +2.1
    +2.2
    +2.3
    +2.4
     3
     4
     5
    

    当我用git add -p ./xxx选择 stage 时,这四行是不能再分的最小单位了。

    Stage this hunk [y,n,q,a,d,e,?]? s
    Sorry, cannot split this hunk
    @@ -1,5 +1,9 @@
     1
     2
    +2.1
    +2.2
    +2.3
    +2.4
     3
     4
     5
    

    Found it. 可以按 e 手动编辑 hunk ,麻烦了点但是可以做到

    11 replies  •  2022-10-19 00:20:05 +08:00
    billlee
    billlee
    Oct 18, 2022
    1
    e 手动编辑 diff
    ZZZZone
    ZZZZone
    Oct 18, 2022
    2
    试试 lazygit ; 进入文件后空格选中一行提交。 非常方便
    zhuweiyou
    zhuweiyou
    Oct 18, 2022
    3
    IDEA git 有这个功能, 可以同一个文件选某些改动不提交
    dangyuluo
    dangyuluo
    OP
    Oct 18, 2022
    4
    @ZZZZone 哇用了一会儿很棒的工具


    @zhuweiyou VSCode 的 stage selected range 不太好用
    xygod
    xygod
    Oct 18, 2022
    5
    用 fork
    可以单选,复选多行代码提交
    geekaven
    geekaven
    Oct 18, 2022
    6
    想简单点就 sourcetree ,可以添加单行
    DOOMS
    DOOMS
    Oct 18, 2022
    7
    vscode 好像支持
    Dvel
    Dvel
    Oct 18, 2022
    8
    用 GUI 吧,fork 双击某一行后就可以提交单行。
    wanmyj
    wanmyj
    Oct 18, 2022
    9
    一个是按 e 手动编辑 hunk ,另外如果行数不多的话,可以用个笨方法也挺快的,就是 stash 掉这个文件,然后把要 add 的东西修改回来以后 commit ,再用 stash apply 把之前的修改 apply 回来
    blankmiss
    blankmiss
    Oct 18, 2022
    10
    idea 可以直接进行 add 增减
    ysc3839
    ysc3839
    Oct 19, 2022
    11
    绝大多数 Git 的 GUI 工具都有 stage lines 功能,比如 git gui https://git-scm.com/docs/git-gui 就有。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3314 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 05:08 · PVG 13:08 · LAX 21:08 · JFK 00:08
    ♥ Do have faith in what you're doing.