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

2022-01-14

个人理解,重复的很多操作,命令行提炼出一个命令包含多个操作 通过 && 连接,但是界面需要很多重复操作,还有其他优势吗? 第 1 条附言 · 16 天前 比如这种组合操作: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 条附言 · 15 天前 比如新建回滚分支:git checkout master && git pull && git branch -D rollback && git checkout -b rollback && git push origin –delete rollback && git push -u origin rollback 命令 操作 重复 git 118 条回复 • 2022-01-20 19:06:46 +08:00 1 2 ❮ ❯ aababc 1 aababc
16 天前 简单,方便,直观,可以满足大部分的需求,输入一堆的命令,GUI 只需要点点手指。但是高级功能命令行还是很方便的。 66beta 2 66beta
16 天前 ❤️ 2 经常使用,熟练之后可以应付面试 lujiaosama 3 lujiaosama
16 天前 高级功能还是要上命令行. 比如说整个 cherypick 啥的, gui 我操作不来. qiany 4 qiany
16 天前 ❤️ 1 可以复制粘贴 momocraft 5 momocraft
16 天前 ❤️ 1 history 知道自己做了什么 可重放 richangfan 6 richangfan
16 天前 可以在服务器里面操作 nine 7 nine
16 天前 没啥优势 TomatoYuyuko 8 TomatoYuyuko
16 天前 ❤️ 2 其实也不互斥啊,工具而已怎么舒服怎么来。就好比那种电动螺丝刀比手动的效率高多了,遇到犄角旮旯再手拧也不耽误。工具是给人用的,不能削足适履。(面试除外) MacDows 9 MacDows
16 天前 via Android 可以写个脚本 newmlp 10 newmlp
16 天前 逼格高 fengfuliu 11 fengfuliu
16 天前 每次提交的时候盲操作键盘敲的一气呵成 有一种莫名的快感 mitsuizzz 12 mitsuizzz
16 天前 ❤️ 1 能直观的知道做了什么,工具什么的 一通按,怕误操作了某些东西,毕竟协同的,少出乱子 hello158 13 hello158
16 天前 ❤️ 1 能少学一样就少学一样。 我都已经会了命令了,还要学习界面怎么操作,我不想学了。输命令还很快。 wudicgi 14 wudicgi
16 天前 如果不是写脚本要用的话,没啥优势 LotusChuan 15 LotusChuan
16 天前 ❤️ 2 我命令行操作 git 比图形化界面快。此外 git 在命令行里面整个生态都好很多,对它自身而言有功能比如内置 trigger 可以实现自动化,对其他工具而言有像是 vim 的 fzf 插件可以实现在整个 repo 里面模糊查询快速移动,比图形化界面快很多。

但是这些都建立在你整套开发大部分在命令行里面的前提上,要是本身就是全套图形化界面,那为了用个 git 特意开个终端挺多余的。 pkookp8 16 pkookp8
16 天前 via Android 写 shell 可以用 SSang 17 SSang
16 天前 ❤️ 3 对于很多不愿意使用 git 图形界面的人来说,理由就是,我无法知道当我点下这个按钮后到底发生了什么。

黑盒对基础操作来说是十分友好的,但毕竟是一层封装,无法做到随心所欲。 anonym233 18 anonym233
16 天前 正常流程使用 GUI 或者命令行都没差。于我而言,我用命令行,只有看历史提交的时候用 GUI 工具。因为用命令行做一些操作会比较方便,比如 cherry-pick 某个 commit ,checkout 某个 branch 的某些文件,或者整理分支 reset –soft ,合并最新代码 rebase origin/master 等 SSang 19 SSang
16 天前 界面实际上就是客制化,只是客制化并不一定适应所有人。

当你使用 shell 脚本时候,其实你在做的事情,和写图形化界面的人做的事情并无两样,只是出发点不同,但目的是一样的。你不愿意使用工具,应该只是这个工具刚好不符合你的需求 raptor 20 raptor
16 天前 习惯了,毕竟很多事情都在命令行里操作,顺便就一起做了 agagega 21 agagega
16 天前 Git 自己的命令行都分上层命令和底层命令,上层命令是用脚本对底层命令的封装。GUI 就是把上层命令再封装了一层,happy path 可能没毛病,但遇到点问题可能就抽象泄漏了 yukiww233 22 yukiww233
16 天前 emmm 用 idea 自带的 gui, cherry-pick 不是一键完成么 Cloutain 23 Cloutain
16 天前 我只会用乌龟 GUI 。。。 ZeroClover 24 ZeroClover
16 天前 其实可以试试 Sublime Merge ,CLI 思想的 GUI 操作。

对于刚学习 git CLI 而言还是比较友好的。 orzorzorzorz 25 orzorzorzorz
16 天前 ❤️ 1 ui 妹子来找我对需求的时候,我会敲命令来显示我的手速,用以表示自己的交配权尚未得到保障。就一个人的时候,简单的命令就点点点,rebase 这种需要保证提交记录干净的,那还是会敲一敲让自己安心的。 0o0O0o0O0o 26 0o0O0o0O0o
16 天前 via iPhone https://github.com/microsoft/vscode/issues/32405 kidonng 27 kidonng
16 天前 via Android git -C git –git-dir GUI 如何优雅替代以上参数,急,在线等🐶 unco020511 28 unco020511
16 天前 我比较菜,还是习惯 gui justwe7 29 justwe7
16 天前 gaa gcsm ggpush 配合 zsh-autosuggestions ,提交代码不要太爽 james2013 30 james2013
16 天前 提升了打字速度 340244120w 31 340244120w
16 天前 @kidonng #27 不太会命令,不过需求是啥 andrewpsy 32 andrewpsy
16 天前 ❤️ 1 家里各种轴的键盘十把左右,必须要多打字才对得起它们。 lujiaosama 33 lujiaosama
16 天前 @justwe7 你这是自定义的快捷指令么? 我之前很多指令这么搞的, 换部电脑就有时得卡顿下想想原来的命令怎么回事.感觉不是特别通用. 还有在 win 上没有 zsh 我都整不会了. Maxxxxyu 34 Maxxxxyu
16 天前 需要复杂操作的用指令,但就日常的 commit ,push ,pull 啥的,gui 界面方便很多 chengyiqun 35 chengyiqun
16 天前 idea 自带的 gui 够用了, 如果有其他需求, 就用命令行, 合适就行. 总之就是不同的操作, 用 gui 和用命令行都有省事的地方, 哪个省事用哪个. GalaDOS 36 GalaDOS
16 天前 用的编辑器比较多,gui 很多套,不想一个个去熟悉,命令行统一解决比较省心 ksc010 37 ksc010
16 天前 看你使用场景了,感觉用啥舒服省事就用那个 我平时提交的时候就用 gui 审查代码改动了啥感觉很方便 一些自动话的脚本就用命令行 leeyuzhe 38 leeyuzhe
16 天前 jb 家用 gui ,然后 vscode 用命令行,因为 ui 是在太难用了 wonderfulcxm 39 wonderfulcxm
16 天前 via iPhone 在服务器没有 UI 操作的时候 tuwulin365 40 tuwulin365
16 天前 命令行的优势就是不需要安装 gui 工具 BeautifulSoap 41 BeautifulSoap
16 天前 ❤️ 11 git 只用命令行地非常多人早就已经把下面这一把梭练到炉火纯青了

git add * git commit -m “message” git push

每次 review 别人的代码,看到提交上一堆.DS_Store ,ide 临时文件夹,测试用的账号密码之类的猜都不用猜,那人 100%是只用 git 命令行而且拒绝使用 GUI 的主

说真的无论是命令行也好用 GUI 也好,最重要的是正确安全地完成工作。你只用命令行也行,但这这种用了命令行为了方便偷懒地做法,真的没什么资格去谈“命令行很酷”“GUI 我不知道做了什么,命令行我放心”之类的 industryhive 42 industryhive
16 天前 没有优势,用 IDEA 的 GUI 界面操作 git 非常方便,我看别人用 VS Code 操作 git 都用命令行,那个效率慢的让我捉急。。 gadfly3173 43 gadfly3173
16 天前 @kidonng #27 在 gui 里好像没什么必要跨工作目录去执行 git——切一下 tab 不比你打路径快? freedomSky 44 freedomSky
16 天前 据说有人是因为 magit 还保留着 emacs 的 tuutoo 45 tuutoo
16 天前 via Android gui 总的来说是方便 但是只会 gui 不知道后面执行的命令也不好 切到 linux 下没 gui 就活不了了 liubaicai 46 liubaicai
16 天前 gui 也就看 history 和 branch 方便,其他还好 mxT52CRuqR6o5 47 mxT52CRuqR6o5
16 天前 gui 我可以方便的选择性的提交某些文件,甚至于只提交一个文件中的部分修改 命令行选择性提交部分文件应该没 gui 方便吧,只提交一个文件中的部分修改我没深入了解过不知道要怎么用命令行操作(就算有能力操作的话操作起来应该也不容易吧) akira 48 akira
15 天前 gui 是对命令的封装 命令是对代码的封装 本质上其实都一样 placeholder 49 placeholder
15 天前 git clone –recursive

git add

git commit

git push

目前为止就用到了四条命令实在没必要开 GUI chi1st 50 chi1st
15 天前 逼格 18000rpm 51 18000rpm
15 天前 via Android ❤️ 1 unix 工具链。有用的是 grep, awk, cut, sort, while, xargs 这些,否则为什么要装 Linux 买 macOS 。 nicebird 52 nicebird
15 天前 简单啊,大部分就一些简单指令 yongSir 53 yongSir
15 天前 对我来说 1 最大的好处是不用下客户端,讲真,我在学校喜欢用 sourceTree ,知道它某一天某个版本要登陆注册,然后还要挂梯子注册,当时实验室的网很难搞,我就从此告别客户端了,不过想 diff 还是要借 vscode ,毕竟 vim diff 我看着不方便 2 就是命令行你不用学习任何新的按钮 /快捷键之类的,永远没有客户端更新 /更换,快捷键 /按钮更换的学习成本 3 第三是用不上,通常开发中 git 操作就那个几个,命令行完全足够

综合对我而言,够用就没必要添麻烦你….. 勿喷 retrocode 54 retrocode
15 天前 小乌龟够我用了 GUI 没啥需求 shayuvpn0001 55 shayuvpn0001
15 天前 @retrocode 小乌龟不是 GUI ? 黑人问号.jpg litmxs 56 litmxs
15 天前 via Android 简单的提交回退合并都直接用 ide 自带的,复杂的操作用命令行 november 57 november
15 天前 @shayuvpn0001 windows 的小乌龟有提供 bash 终端,可以输入命令行。 retrocode 58 retrocode
15 天前 @shayuvpn0001 #55 好吧,可能我对 GUI 的定义有点严格了.我的锅.我之前一直把小乌龟定位在插件类别…右键提交什么的 shayuvpn0001 59 shayuvpn0001
15 天前 @november 你真是优秀 ngn999 60 ngn999
15 天前 比 gui 快. 另外是跨平台能用的. gui 的你换一个 app 就要重新学习. 24bit 61 24bit
15 天前 cli + magit ,gui 主要在解决冲突的时候用 leafre 62 leafre
15 天前 @BeautifulSoap 太对了,有些人只是为了用命令行而用命令行 darkengine 63 darkengine
15 天前 在公司打杂,需要给多种语言的项目提代码,每个 IDE 的 git GUI 操作方式都不一样,还是命令行一把梭来得快。 nobody1234 64 nobody1234
15 天前 via iPhone @mxT52CRuqR6o5 一个文件的部分修改回滚或提交这点的确是 GUI 的优势 gengchun 65 gengchun
15 天前 @BeautifulSoap

用 GUI 一样会有 .DS_Store 这些。这个只和有没有正确添加 .gitignore 有关系。如果出现 ide 临时文件夹,那是 IDE .gitginore 生成的策略有问题。

真要避免,最好是项目新建时,脚手架模板自带,再加上服务端提交限制。如果是代码是你负责,你应该做这些事情。当然,也可以甩给 devops 。但没法甩给 git 界面。 szzhiyang 66 szzhiyang
15 天前 Git 的命令行就是为其 GUI 而生的。 szzhiyang 67 szzhiyang
15 天前 命令行与 GUI 的关系相当于 API 和 App 的关系。 gengchun 68 gengchun
15 天前 @mxT52CRuqR6o5 部分提交一般是编辑器的 git 扩展 /插件的事情。当然,git 的 –interactive/–patch 参数是反过来,你可以把编辑器看成 git 的插件。这完全取决于你的视角。

当然,这个时候,你可以把 core.editor 设成任何一个 GUI 。 ClericPy 69 ClericPy
15 天前 之前有个前辈是这么回答的: 我的系统没有图形界面 BeautifulSoap 70 BeautifulSoap
15 天前 via Android ❤️ 2 @gengchun 你这用来狡辩还不承认的说辞和我之前遇到的实习生如出一辙

问题在于有没有配置.gitignore 吗?问题明明在于用了命令行但却嫌麻烦偷懒,所以养成了无脑 git add * 的坏习惯还不改。 你可以配置自动忽略.DS_Store 但你没法忽略测试用的帐号密码,没法忽略临时改改但不想提交的变更?很多次 review 别人代码都遇到类似修个 bug 临时改了 log 类用于调试,然后修完 bug 后把忘了这茬把 log 类文件也给提交上来的了。这种情形只有写代码的人每次提交前人工确认一遍才能发现和预防,而 git add *一把梭的人大概率会出这种问题

话题回到 GUI ,你用过 GUI 的话应该知道几乎所有 GUI 都会以非常易读的方式展示修改的文件一览,每次提交前都会强制你手动勾选要提交的文件。这就相当于强制你确认文件变动了。当然真不想慢慢选的人还是会出错的,但出错概率至少比直接 add *要小很多 gengchun 71 gengchun
15 天前 @BeautifulSoap 你这肚量也是可以了。还跟一个实习生计较,跟个坛子里遇到的不相干的人也计较。你拿多少钱,人家拿多少钱?

我这么说,当然是因为我遇到过这样的事情。我不光遇到过,我还查找过的原因,可惜都是通过 GUI 提交的。陈述一下经历,这就成“狡辩”了?我就混个坛子,又不是来认爹的。就算你年入一个小目标,也不至于这么膨胀吧?

我的原则是拿钱多的,活多干点,担的责任大点。若我拿钱少,别人爱干嘛干嘛。我也不想管。你要通过训话管理下属,那是你的事情。但我提醒你,没事火气别这么大,多为建设和谐社会做贡献。毕竟只是工地,不是黑社会。 Chwaiz 72 Chwaiz
15 天前 实际经历: 在有大量改动时,GUI 会卡死,用命令行几秒钟就重置了,很快 个人习惯 平时还是用 GUI 多,必要时用命令行 gengchun 73 gengchun
15 天前 @BeautifulSoap 另外,再提一句,我个人是不赞同在自己本地开发机上部署调试,至少较大规模的项目不应该这么做。可能的话尽量在测试环境做这些事情。

我确实没有遇到过测试环境账号和运行日志被提交上来的。因为测试环境,开发机根本就访问不了。开发机上的代码就算编译了也根本跑不起来。 msg7086 74 msg7086
15 天前 @gengchun 问题在于你说的:

这个只和有没有正确添加 .gitignore 有关系。 楼上说你是狡辩,我觉得这不是狡辩,这是瞎基尔扯淡。

构建提交的时候应该把要提交的代码包括在提交里。不管文件有没有在 ignore 里,把不应该提交的更改提交上来本身就是错误。确实,用 GUI 也有人瞎基尔提交,只不过 GUI 更直观,容易把事情做对。

实习生犯错很正常,因为他还在学习过程中,事情做错了,被人指出来,改正就行了。最可怕的是理直气壮地把错误归结到别人身上。乱提交文件怪 gitignore ,下次是不是还要怪同事没有把着你的手?运维要是把服务器搞坏了是不是还要怪 IT 没把键盘上的回车键抠掉?不愿意学习改正,那就一辈子拿实习生工资好了。

至少我很庆幸我们组里没有这种犯错还要甩锅的人。 msg7086 75 msg7086
15 天前 我拿我常用的 SmartGit 来试试看你说的操作。

第 1 条附言 比如这种组合操作:git checkout -b readytomerge && git reset git rev-parse master && git add . && git commit -m ‘xxx 功能开发’ && git checkout master && git pull && git merge readytomerge

这是在做 squash merge 吗? 1.签出 master 并 pull 。 2.右键 readytomerge 分支,点 merge ,选 merge 到 working tree 。 3.修改提交信息,选中 squash ,点 commit 。

第 2 条附言 比如新建回滚分支:git checkout master && git pull && git branch -D rollback && git checkout -b rollback && git push origin –delete rollback && git push -u origin rollback

1.签出 master 并 pull 。 2.右键 HEAD ,添加分支 rollback 。(如果已经有 rollback 会提示覆盖。) 3.右键 rollback ,push 。(如果已经有 origin/rollback 会提示 force push 。)

==========

从操作数量上来说,GUI 确实比运行一个命令要多。但是如果在合并过程中产生冲突更改,GUI 中解决更方便。命令行组合操作的大前提是中途不会出现错误(冲突等)。 xiadong1994 76 xiadong1994
15 天前 via iPhone

  1. 更换机器没有学习成本。
  2. 我的大多数机器都是 ssh 上去的,没有 GUI 。
  3. 有的比较复杂的操作我不知道 GUI 怎么用,比如查找某个分支里所有不被某两个 tag 包含的 commit 。
  4. CLI 可以在你想要自动化的时候非常方便的和其他命令和脚本结合起来。
  5. CLI 的行为是稳定可控的。 msg7086 77 msg7086
    15 天前 另外,命令行的劣势在于命令是固定的。如果你要新建一个回滚分支 rollback2 ,那你的命令就不能用了。同理,如果你要提交的功能分支名叫 feature-2 ,你的命令也就不能用了。在日常开发中,同时做多个功能的开发、合并到多个不同主线分支,是很常见的场景。( bugfix 合并到 release 再 cherrypick 到 master ,feature 合并到 develop ,等等。) BeautifulSoap 78 BeautifulSoap
    15 天前 via Android @gengchun 我平时工作可是非常大度的,因为大部分人都是正常人,被指出来问题后至少都会接受,也不会去找各种原因来为自己狡辩。提交了不该提交的东西做错事了就是做错了,下次多注意就行,我也不会再多说什么。

而那位实习生我印象深刻就是因为他不光不反思自己 add *还不确认提交内容这件事的危险性和错误性,被指出来后死鸭子嘴硬全甩锅到.gitignore 上。和你的发言如出一辙,所以对你说话我毫不客气,也不认为需要客气,这反倒被你认为我平时工作就这样欺压实习生的态度,呵呵

至于环境什么的都没关系,只要继续 add *一把梭,无论你用什么环境怎么配置,今后依旧非常大概率会把不该提交的更改给提交上来 3dwelcome 79 3dwelcome
15 天前 用 GUI 能合理减少心智负担,把脑容量留下来多记点别的,命令参数有什么好记的。

我自己喜欢找命令行的常用公式,弄到批处理或者简单命令行程序,最后用 GUI 右键菜单给关联起来。 zzxgz 80 zzxgz
15 天前 在 github desktop 里面我不知道应该怎样为一个 commit 签名,所以我就用命令行,因为它直接 -S 就可以了。 YuTengjing 81 YuTengjing
15 天前 没啥优势,只是够用。 js8510 82 js8510
15 天前 所有 CLI 其实都是一个道理:更简单。

比如你要 rename 两个 var 涉及两千个文件。 你修改了之后发现,其中一些不用修改,这时候你只需要 git status | grep xxx patern | sed xxx changes 就可以了。。

另外比如你的开发用的机器是个 server,这个很常见。。如果你要用 GUI. 你就要先有支持 remote 功能的 GIT UI. 相对复杂一些。但是如果你对 GUI 没有依赖,那你基本上上手就能工作。 js8510 83 js8510
15 天前 我有个前苏联的程序员朋友。他年轻时候是做面向一般用户的 GUI ,帮助计算机普及。当年是很新潮的概念。他觉得现在很多程序员可以完全依赖 GUI 做开发,是他当当年怎么也无法想象的。但似乎也是个好事。尤其做前端开发,真的可以做到一年不用敲一行命令,全都拿鼠标点。 Chad0000 84 Chad0000
15 天前 via iPhone 对我来说能点几下鼠标我就避免敲命令行,而且 gui 更直观,一些新知识 /功能你看到了就掌握了。

敲命令行费心智。 fatestigma 85 fatestigma
15 天前 @freedomSky magit 太香了,org-mode 和 magit 让我再也无法转换阵营 wellsc 86 wellsc
15 天前 via iPhone @BeautifulSoap 哥,难道不是 gui 才是偷懒的,gitignore 跟命令行 gui 有什么必然的联系吗 IgniteWhite 87 IgniteWhite
15 天前 @freedomSky @24bit @fatestigma fugitive 和 magit 很多功能甚至 keybinding 都是相同的,在我看来两者都是极好的 AllenHua 88 AllenHua
15 天前 由于平常使用 git+markdown 的形式记录笔记、代码和生活琐事到 GitHub 等平台,所以我给自己写了一个 git add, git commit, git push 的 bat/shell 脚本。

https://github.com/hellodk34/gitpushworkflow

欢迎有需要的朋友使用。在这个项目里我认为 git 命令行的优势就体现的很明显了——可以封装脚本。另外上面有朋友提到的 git add * 之类的会添加所有文件,那事先配置好 .gitignore 不就好了么。 Jackeriss 89 Jackeriss
15 天前 喜欢敲键盘的用命令行,懒得敲键盘的用 GUI gengchun 90 gengchun
15 天前 ❤️ 1 @BeautifulSoap 作为了一混社会的老油子,我得说,大部分人被人指出问题,没那么爽快接受的。除非对方是权威,比如说人民警察什么的,像我是从来不敢去杠人民警察的,毕竟底层人民。

这么顺风顺水,想来您就是个权威。

现在 OP 炫耀一下自己的工作流,只因为是用命令行的,就回个贴打击一下。OP 就算用了 git add . ,他执行之前,完全可以用 git status 看一下。

我说一下我这里的 .DS_STORE 本来就都是 GUI 提交上来的。你也要针尖对麦芒来一通。 我对付人家人办法,现在提到的至少了改四五个地方,这是“全”甩锅到 gitignore 上吗。我把锅扣在自己头上算“甩锅”?

当然这事开发甩锅到 gitgnore 上面有什么用呢?这东西还不是开发写的?开发不检查,锅不还是开发的?那实习生就是开发,他要说是 gitignore 的事情,他这不甩锅?

你处理别人提交上来的的 .DS_STORE 是直接和别人开怼,搞不好还闹得大家都很不开心。

同样是处理别人提交上来的 .DS_STORE ,我是媳妇侍弄婆婆;你是爸爸教训儿子,这是“如出一辙”吗?

您用了这么多成语。就为了一个界面?我说脑机接口最牛逼,GUI, TUI 什么的都是渣渣。

所以,实习生这个事情在你们那里,估计是确实令人“印象深刻”。 dfkjgklfdjg 91 dfkjgklfdjg
15 天前 命令行是基石,GUI 、TUI 只是在基础上的补齐。

前边说的很对,工具是给人用的,不能削足适履。根据不同场景去选择合适的就好了。 fan123199 92 fan123199
15 天前 命令行写 commit 时候要切换输入法就很难受。我用命令行的主要原因是 gui 没有找到对应的指令 magichacker 93 magichacker
15 天前 对输入的参数了如指掌,界面操作有点太“黑盒”了,不够安全 kidonng 94 kidonng
15 天前 via Android @340244120w 灵活指定工作目录和利用裸仓库 @gadfly3173 GUI 没必要不代表没需求,哪怕不提遍历多仓库,用 worktree 肯定 -C 方便 undeflife 95 undeflife
15 天前 这也能搞对立?

个人习惯而已,IDE 那么先进一样有人喜欢去折腾 vim emacs 。 至于拿一些人犯的错指责另一些有相似选择的人就更搞笑了 rrfeng 96 rrfeng
15 天前 命令行更贴近本质,有时候你的一些想法可能 GUI 无法帮你实现。只要学会了命令行,换任何 GUI 都能用,否则你换了 GUI 可能很多同名操作行为不一致就很懵逼。 RandomJames 97 RandomJames
15 天前 个人觉得日常使用上差别不大,无非是看自己更熟悉哪个。 muhuan 98 muhuan
15 天前 适合自己的才是最好的 henryhu 99 henryhu
15 天前 我用命来行,提交之前都检查一遍看看修改了哪些内容。楼上有说使用命令行提交了不该提交的文件,我遇到的情况恰恰相反,使用图形界面的常常闭眼点击同步,提交了一堆测试、无关的代码 nil333 100 nil333
15 天前 命令行就可以知道自己干了啥,图形界面经常糊里糊涂点了忘记了
sagaxu 101 sagaxu
15 天前 有些偏门功能在 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
15 天前 可以写到 CI 、CD 的脚本里 afx 103 afx
15 天前 优势在于非常清楚自己想做什么,每条命令都是自己手打上去的。第二个出了问题也相对好找解决办法,因为很多解决方案都是命令行的。第三是偶尔有同事会碰到 gui 提交不成功但是又不知道哪里出错的问题,使用 git bash here 半分钟就能定位到问题。还有平常配合 vim 使用,git log » (somewhere) ,之后就可以尽情搜索编辑对比提交日志,非常方便。 xuan_lengyue 104 xuan_lengyue
15 天前 结合着用就是了,GUI 看 diff 很方便,命令行则可以明确当前执行的操作 BeautifulSoap 105 BeautifulSoap
15 天前 @gengchun 有被笑到,我平时说话遇到提交了不该提交的文件都是大概这么说的 “这 xxxx 变更、xxxx 文件是不该提交的内容,如果你平时只用命令行的话,我觉得可能是你习惯了 git add *还不确认提交内容,这不好可能需要注意下”当然,我用日语的所以实际字打出来的话会有对应敬语的修饰。

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

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

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

charlie21 108 charlie21
15 天前 各有优势 两个都用 340244120w 109 340244120w
14 天前 @kidonng #94 所以这么做的需求是啥 我还是没太明白 kidonng 110 kidonng
14 天前 via Android @340244120w 简单来说:

  • 在命令行里切 PWD 的代价是比用 git -C 高的
  • 可以把裸仓库(.git 文件夹)与需要管理的文件分开,然后用 –git-dir 指定裸仓库位置。可以运用在管理 dotfiles 等地方 James369 111 James369
    14 天前 这是有渊源的,首先 git 是出自 linux 大神之手,而 linux 的精髓就是文本命令操作 justwe7 112 justwe7
    13 天前 @lujiaosama ohmyzsh 的 git 插件默认定义的快捷指令,win 下面好像也有类似的工具可以搜到。平时用到的 git 指令就那几个,敲多了都成了肌肉记忆了。。。 cstj0505 113 cstj0505
    13 天前 @BeautifulSoap 这是 gitignore 没做好吧 BeautifulSoap 114 BeautifulSoap
    13 天前 @gengchun 我作为公司里入职不到 3 年的普通小员工,当真受没有领导这头衔。不信?我之前发的在日本工作的帖子你可以看一下: https://v2ex.com/t/748274 (帖子里说有上下关系是为了不被特定出所在公司,因为奉行完全扁平化的 it 公司在日本毕竟少数。而且最近几个月天天 1 点多才到公司上班,虽然公司制度上这么做完全没问题但被特定出公司的话毕竟不太好) 我思考了一下,觉得可能是因为在日本工作大家都还算轻松,所以不太会像国内崩得这么紧员工之间小心眼吧 honhon 115 honhon
    13 天前 界面操作简单,简单门槛低,可以提高工作效率,比如解决冲突什么的 yuedashi 116 yuedashi
    13 天前 via Android 我用的很多的一个命令,好像没在 GUI 上发现有实现的。git add -p 。 比如就是一个文件改了 10 行,但是只有其中 8 行是我想提交的,其他两行是测试代码不提交。 junwind 117 junwind
    13 天前 @hello158 GUI 根本不需要花时间学,优点是减少出错几率 hanmo0893 118 hanmo0893
    9 天前 用 command line 便于显摆 用小乌龟 90%被骂