V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
lingdu666
V2EX  ›  git

git 操作命令行比界面有哪些优势呢?

  •  
  •   lingdu666 · 2022-01-14 15:17:59 +08:00 · 10195 次点击
    这是一个创建于 1070 天前的主题,其中的信息可能已经有所发展或是发生改变。

    个人理解,重复的很多操作,命令行提炼出一个命令包含多个操作 通过 && 连接,但是界面需要很多重复操作,还有其他优势吗?

    第 1 条附言  ·  2022-01-14 18:06:24 +08:00
    比如这种组合操作:git checkout -b readytomerge && git reset `git rev-parse master` && git add . && git commit -m 'xxx 功能开发' && git checkout master && git pull && git merge readytomerge
    第 2 条附言  ·  2022-01-14 18:10:20 +08:00
    比如新建回滚分支:git checkout master && git pull && git branch -D rollback && git checkout -b rollback && git push origin --delete rollback && git push -u origin rollback
    119 条回复    2022-03-19 22:31:01 +08:00
    1  2  
    sagaxu
        101
    sagaxu  
       2022-01-15 12:55:18 +08:00
    有些偏门功能在 GUI 下比较麻烦,比如我最近一个的操作

    把 3 个项目的所有 branch ,
    1. 丢弃 2021 年 1 月 1 日以前的 commit ,
    2. 但不能修改 1 月 1 日之后的 author 和 commit 时间
    3. 释放 repo 存储空间,压缩仓库大小

    命令行下面就很方便,check orphan ,指定时间 commit 然后 rebase --onto ,完事后 reflog 清理,再 fsck 和 gc 一下就完工了,写个简单脚本,就几个项目所有分支全搞定了
    Cbdy
        102
    Cbdy  
       2022-01-15 13:12:04 +08:00
    可以写到 CI 、CD 的脚本里
    afx
        103
    afx  
       2022-01-15 13:34:27 +08:00
    优势在于非常清楚自己想做什么,每条命令都是自己手打上去的。第二个出了问题也相对好找解决办法,因为很多解决方案都是命令行的。第三是偶尔有同事会碰到 gui 提交不成功但是又不知道哪里出错的问题,使用 git bash here 半分钟就能定位到问题。还有平常配合 vim 使用,git log >> (somewhere) ,之后就可以尽情搜索编辑对比提交日志,非常方便。
    xuan_lengyue
        104
    xuan_lengyue  
       2022-01-15 13:49:57 +08:00
    结合着用就是了,GUI 看 diff 很方便,命令行则可以明确当前执行的操作
    BeautifulSoap
        105
    BeautifulSoap  
       2022-01-15 14:25:31 +08:00
    @gengchun 有被笑到,我平时说话遇到提交了不该提交的文件都是大概这么说的 “这 xxxx 变更、xxxx 文件是不该提交的内容,如果你平时只用命令行的话,我觉得可能是你习惯了 git add *还不确认提交内容,这不好可能需要注意下”当然,我用日语的所以实际字打出来的话会有对应敬语的修饰。

    如果这种话在你眼里都是普通人都没法接受,所谓官威的话,那么你平时工作生活都遇到的都是一群心眼多么小的人啊?虽然不太想用这成语但“物以类聚人以群分”要不要思考下?

    还有,不好意思我们公司奉行完全扁平化的管理模式,我们各项目组连组长都没有,所有开员工在职能上都是平等地位。甚至我们公司扁平化到普通员工的上面直接就是公司懂事们,互相之间只有新员工对老员工前辈的适当礼节根本没有职位上的所谓上级可以去要求或欺压别人。所以可能也拜此所赐我们公司氛围是真的很好,可能这也是比较少遇到你说的小心眼人的一个原因。

    对了,都说了这么多楼了,你还张口闭口 gitgnore 是认真的吗,避重就轻简直死鸭子嘴硬。我就问你无论什么环境,写代码时临时加了几行调试用代码或任意的临时的代码,然后提交时忘了这茬提交前一行 git add *全给交上来了那么请问这种情况你给我配置下 gitgnore 给我看看??这次你可以把临时代码提交上来,那么今后万一提交上什么敏感信息导致出事怎么办?当然我看你说的话也是个连最基本的这种责任感都没的老油条了,那也和你继续逼逼下去的需要了
    hackshen
        106
    hackshen  
       2022-01-15 14:29:56 +08:00
    命令行就像心算、GUI 就是笔算
    gengchun
        107
    gengchun  
       2022-01-15 15:16:24 +08:00   ❤️ 1
    @BeautifulSoap 您大人大量,一看就是领导坐久了,自夸这么自然。

    charlie21
        108
    charlie21  
       2022-01-15 17:09:25 +08:00
    各有优势 两个都用
    340244120w
        109
    340244120w  
       2022-01-15 18:22:28 +08:00
    @kidonng #94 所以这么做的需求是啥 我还是没太明白
    kidonng
        110
    kidonng  
       2022-01-15 18:37:07 +08:00 via Android
    @340244120w 简单来说:
    - 在命令行里切 PWD 的代价是比用 git -C 高的
    - 可以把裸仓库(.git 文件夹)与需要管理的文件分开,然后用 --git-dir 指定裸仓库位置。可以运用在管理 dotfiles 等地方
    James369
        111
    James369  
       2022-01-16 00:43:56 +08:00
    这是有渊源的,首先 git 是出自 linux 大神之手,而 linux 的精髓就是文本命令操作
    justwe7
        112
    justwe7  
       2022-01-17 10:51:05 +08:00
    @lujiaosama ohmyzsh 的 git 插件默认定义的快捷指令,win 下面好像也有类似的工具可以搜到。平时用到的 git 指令就那几个,敲多了都成了肌肉记忆了。。。
    cstj0505
        113
    cstj0505  
       2022-01-17 11:32:45 +08:00
    @BeautifulSoap 这是 gitignore 没做好吧
    BeautifulSoap
        114
    BeautifulSoap  
       2022-01-17 13:07:27 +08:00
    @gengchun 我作为公司里入职不到 3 年的普通小员工,当真受没有领导这头衔。不信?我之前发的在日本工作的帖子你可以看一下: https://v2ex.com/t/748274 (帖子里说有上下关系是为了不被特定出所在公司,因为奉行完全扁平化的 it 公司在日本毕竟少数。而且最近几个月天天 1 点多才到公司上班,虽然公司制度上这么做完全没问题但被特定出公司的话毕竟不太好)
    我思考了一下,觉得可能是因为在日本工作大家都还算轻松,所以不太会像国内崩得这么紧员工之间小心眼吧
    honhon
        115
    honhon  
       2022-01-17 15:05:33 +08:00
    界面操作简单,简单门槛低,可以提高工作效率,比如解决冲突什么的
    yuedashi
        116
    yuedashi  
       2022-01-17 16:01:33 +08:00 via Android
    我用的很多的一个命令,好像没在 GUI 上发现有实现的。git add -p 。
    比如就是一个文件改了 10 行,但是只有其中 8 行是我想提交的,其他两行是测试代码不提交。
    junwind
        117
    junwind  
       2022-01-17 17:12:05 +08:00
    @hello158 GUI 根本不需要花时间学,优点是减少出错几率
    hanmo0893
        118
    hanmo0893  
       2022-01-20 19:06:46 +08:00
    用 command line 便于显摆
    用小乌龟 90%被骂
    lululau
        119
    lululau  
       2022-03-19 22:31:01 +08:00
    如果用过 magit 就能知道没有按钮的 GUI 的才是效率之王
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3048 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 14:02 · PVG 22:02 · LAX 06:02 · JFK 09:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.