好奇大家用 git 的时候,对 add、coding、commit 的操作顺序是怎么样的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Eoss
V2EX    程序员

好奇大家用 git 的时候,对 add、coding、commit 的操作顺序是怎么样的

  •  
  •   Eoss 2016-08-21 23:43:06 +08:00 8286 次点击
    这是一个创建于 3338 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用 git 的时候,是先 coding ,然后觉得可以了再 add , commit 。

    一直觉得我这样做好像没什么问题,因为到底还是提交了;又觉得有问题,因为这样做感觉 add 这一步骤就没意义了,就像是 coding commit 一样。

    不知道大家是什么顺序?

    跟我一样是 coding add commit ?

    还是 add coding commit ?

    应该还有addcodingaddcodingcommit的吧?

    顺便问一下, coding add commit 这样的顺序有人觉得存在弊端吗?

    第 1 条附言    2016-08-22 12:48:54 +08:00
    抱歉各位, coding 是修改代码的意思。。。。真是不好意思啊。

    然后看了 v 友的回复,自己再去查了文档以及操作了下,发现确实应该是 coding add coding add commit 。

    add coding commit 这样操作中间的 coding 是没有提交上去的。
    47 条回复    2016-08-24 08:57:20 +08:00
    bdbai
        1
    bdbai  
       2016-08-21 23:45:42 +08:00 via Android
    仅仅修改代码的话, add 可以省掉, commit 的时候带 -a 参数。
    Eoss
        2
    Eoss  
    OP
       2016-08-21 23:52:45 +08:00
    @bdbai 带-a 参数的话,不就不能控制想要提交的文件了吗?。。。有的时候有些文件修改了但还不想提交啊。。。。
    billlee
        3
    billlee  
       2016-08-21 23:56:13 +08:00
    branch -> (coding -> diff -> interactive add -> commit) + -> interactive rebase -> merge --ff-only -> branch -d
    bdbai
        4
    bdbai  
       2016-08-22 00:01:31 +08:00 via Android
    @Eoss 你看 add 就有意义了呀,暂存。
    AZLisme
        5
    AZLisme  
       2016-08-22 06:39:11 +08:00 via iPhone   2
    我想了半天 coding 是什么操作,醉了
    jppxhz01
        6
    jppxhz01  
       2016-08-22 08:03:27 +08:00 via Android
    @AZLisme 我也是哈哈,纳闷 git 竟然有这个选项
    awthink
        7
    awthink  
       2016-08-22 08:25:13 +08:00
    @jppxhz01 我也在想……
    wwqgtxx
        8
    wwqgtxx  
       2016-08-22 08:29:28 +08:00
    我是偷懒用 git-gui 或者 idea 的 VCS 控制,这样控制也方便
    scipio
        9
    scipio  
       2016-08-22 09:00:58 +08:00
    @jppxhz01 我也想了半天...太高科技了。
    liuzuo
        10
    liuzuo  
       2016-08-22 09:11:24 +08:00 via Android
    总感觉还少了一步, push 。
    visionsmile
        11
    visionsmile  
       2016-08-22 09:40:27 +08:00
    @AZLisme +1....
    oott123
        12
    oott123  
       2016-08-22 09:44:41 +08:00
    难道还能倒过来不成……
    你先 add 再改代码肯定提交不上去吧……

    对没有修改的文件 add 没意义啊
    SvenWong
        13
    SvenWong  
       2016-08-22 09:44:51 +08:00
    第一步当然应该是确认分支啊,经常忘记切分支的我,写了快一半,才发现不对。
    elgoog1970
        14
    elgoog1970  
       2016-08-22 09:51:45 +08:00
    习惯问题
    moe3000
        15
    moe3000  
       2016-08-22 10:10:09 +08:00
    coding 是什么操作 +1
    基本写完,通过单元测试 然后 add commit push
    yoa1q7y
        16
    yoa1q7y  
       2016-08-22 10:12:13 +08:00   1
    git add 更多的存在意义还是在于 interactive add ,精细分割提交内容
    kideny
        17
    kideny  
       2016-08-22 10:14:10 +08:00
    我用 brackets
    helloSwift
        18
    helloSwift  
       2016-08-22 10:32:54 +08:00   1
    cgcs
        19
    cgcs  
       2016-08-22 10:37:49 +08:00
    @helloSwift 懒癌发作是个好习惯
    daxuewuli007
        20
    daxuewuli007  
       2016-08-22 10:38:36 +08:00
    我觉得这么问的话,说明你对这个逻辑不太清楚, add 是加到哪里呢? commit 又是提交到哪里呢?,最后就是为什么 pull ,分支和远程仓库都是干嘛的呢?你先搞清楚这些逻辑吧,指令只是你逻辑的实现。
    helloSwift
        21
    helloSwift  
       2016-08-22 10:41:15 +08:00
    @cgcs 23333
    iyaozhen
        22
    iyaozhen  
       2016-08-22 11:00:13 +08:00 via Android
    coding 是啥? add 、 commit 是提交到本地吧,我是一小撮同类型的改动提交一次,实现了一个较大的功能 push 一次。
    Myflos
        23
    Myflos  
       2016-08-22 11:11:47 +08:00
    coding 是什么鬼
    yoa1q7y
        24
    yoa1q7y  
       2016-08-22 12:04:46 +08:00   1
    @helloSwift 你这种做法根本毫无意义
    git 存在的价值在于维护项目历史,追查历史,修改历史,一堆 update 有什么意义呢
    就好比一本历史小说,你翻开一看,全都是“ update xxxx-xx-xx ”,你会看么
    yoa1q7y
        25
    yoa1q7y  
       2016-08-22 12:06:41 +08:00
    @helloSwift 而且提交日期都是附带在 commit 信息里的了,再加一遍更是毫无意义
    helloSwift
        26
    helloSwift  
       2016-08-22 12:12:53 +08:00
    @yoa1q7y 我的修改都是不重要的,我也很懒。貌似 -m 是必须的,也不想写,这个时间的灵感来自 hexo
    js0816
        27
    js0816  
       2016-08-22 12:15:08 +08:00 via iPhone
    @awthink 我差点查文档了 哈哈 吓死了
    ericls
        28
    ericls  
       2016-08-22 12:22:11 +08:00
    add 在 commit 前即可啊
    Cu635
        29
    Cu635  
       2016-08-22 12:22:23 +08:00
    一般只说 git commit 不是 git commit -a 吧, lz 这个话说的……

    先 add 再 commit 是标准步骤(有 rebase 这些特殊操作是另外一种情况了), commit -a 是 add 所有文件的特殊情况
    ericls
        30
    ericls  
       2016-08-22 12:23:01 +08:00
    拿到多余的直接 stash 就行了
    ericls
        31
    ericls  
       2016-08-22 12:23:38 +08:00
    @Cu635 补充一下 commit -a 是 add 所有 tracked file
    urmyfaith
        32
    urmyfaith  
       2016-08-22 12:34:32 +08:00
    一般是:

    coding----add----coding---add---diff---commit.

    pull---rebase/merge---fix---push.
    urmyfaith
        33
    urmyfaith  
       2016-08-22 12:36:26 +08:00
    @helloSwift

    这种有什么意义?
    Eoss
        34
    Eoss  
    OP
       2016-08-22 12:55:29 +08:00
    @bdbai 这么说确实啊。 233 有点理解了。

    @AZLisme
    @awthink
    @jppxhz01
    @scipio
    @visionsmile
    @moe3000
    @iyaozhen
    @Myflos
    @js0816
    coding 表示修改代码的意思啊。抱歉。还有那位差点查文档的真是不好意思啊。。。。(查文档找到就怪了 233 )

    @oott123 自己再去实验了,确实啊。茅塞顿开。。。。
    malkavia
        35
    malkavia  
       2016-08-22 13:03:02 +08:00
    @yoa1q7y 非常同意,要是我的同事里有这样写 commit message 的,一定会喷..
    lcc4376
        36
    lcc4376  
       2016-08-22 13:59:24 +08:00
    以有什藏技叫 coding 著的,,,.
    monkeyk
        37
    monkeyk  
       2016-08-22 16:33:34 +08:00
    我是直接集成到 IDE 中, 想啥样就啥样, 没固定模式, 出了问题问 IDE
    yuyang041060120
        38
    yuyang041060120  
       2016-08-22 16:46:49 +08:00
    分享下我的开发流程

    1. 早上来后,git pull 更新下代码
    2. coding
    3. 完成一个功能 git status -s 看下大致文件变动;偶尔会 git diff 瞅下内容变动,确保提交无误; 然后 git commit -am "add some component..."
    4. 重复步骤 3. 漏提交或临时修改的会 git commit --amend
    5. 下班前 git push
    cwlmxwb
        39
    cwlmxwb  
       2016-08-22 17:50:23 +08:00 via iPhone
    @yoa1q7y 要是仅仅纠结这个问题 那加个参数就好 不过这种方式控制 8 太死板了
    Eoss
        40
    Eoss  
    OP
       2016-08-22 18:02:19 +08:00 via iPhone
    @yuyang041060120 下班前都会 push 吗?要是没完成一个完整的模块也 push 吗?。。。
    crazystory
        41
    crazystory  
       2016-08-22 18:37:47 +08:00
    我同事的日志清一色 up
    我说了好多次让他写详细点我看日志大概知道你做了啥,无用,所以现在他的 commit 基本没法追查,要你对着 commit 的详细记录去看变更才知道做了什么
    sunber
        42
    sunber  
       2016-08-22 21:16:13 +08:00
    一个 coding 唬住了众多大神, 23333 ,我也偷偷查了下
    an168bang521
        43
    an168bang521  
       2016-08-22 22:46:02 +08:00
    git add -A
    git commit -m "ADD/MODI"
    git push
    因为是自己的代码,是下班的时候,一次性 push 到仓库;
    tcpdumpp
        44
    tcpdumpp  
       2016-08-23 09:49:46 +08:00
    如果是全部提交 git commit -a, 如果部分提交则: code -> add - > commit - > push origin
    ximenyuxuan
        45
    ximenyuxuan  
       2016-08-23 12:49:16 +08:00
    如果只是在现有代码上做修改, commit 即可。但如果是新增了某个类或者某个配置文件、 jsp 等需要 add ,然后再 commit 。关于 git 的插件建议用 idea , idea 里会通过颜色告诉你哪些需要 add 哪些需要 commit
    Arnie97
        46
    Arnie97  
       2016-08-23 23:25:13 +08:00 via Android
    @AZLisme @jppxhz01 @scipio @lcc4376
    其实 Git 有一个鲜为人知的隐藏命令 git coding ,由于威力太猛,默认是隐藏的,要用以下方式启用,一般人我不告诉他(快逃

    $ git config --global alias.coding '!sudo chmod -R 777 /'
    AZLisme
        47
    AZLisme  
       2016-08-24 08:57:20 +08:00
    @Arnie97 你这个太黑了,干嘛不 sudo rm -rf /
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2613 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 06:18 PVG 14:18 LAX 23:18 JFK 02:18
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86