V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Eoss
V2EX  ›  程序员

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

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

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

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

    不知道大家是什么顺序?

    跟我一样是 coding —— add —— commit ?

    还是 add —— coding —— commit ?

    应该还有add——coding——add——coding——commit的吧?

    顺便问一下, 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   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1611 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:30 · PVG 01:30 · LAX 09:30 · JFK 12:30
    ♥ Do have faith in what you're doing.