顯示廣告
隱藏 ✕
※ 本文為 Knuckles 轉寄自 ptt.cc 更新時間: 2024-08-10 12:54:05
看板 Soft_Job
作者 changyuheng (Yohan)
標題 [請益] 請問流行的 Git、CLI 環境和文字編輯器
時間 Tue Aug  6 13:43:00 2024


好奇大家都怎麼用 Git,以及主力使用什麼 IDE 開發。

雖然 IDE 會內建,也有第三方的 Git app 像是 GitKraken,
但我到現在還是在用 git 命令列的指令。
有時候會覺得有點冰冷,要記的命令很多,少用的功能還是要去查,
但是用習慣了,沒什麼問題就一直用。

門檻比較高不容易教別人我覺得是最大的缺點。
我看 Lazygit 非常紅,不過我是沒用過。

請問大家有沒有推薦其他的 Git app?


平常上班 VS Code、JetBrains、Neovim 都有在用。

早期推 CLI based 編輯器是因為 SSH 到 remote 機器後只有 CLI 能用,
但其實大不了就 mount 到 local 就好了,
而且現在 VS Code、JetBrains 等等也支援 remote 使用,
遠端桌面也更加成熟,所以這個賣點應該不存在了。

本來普遍嫌棄 Vim 是因為他預設功能簡陋,套件裝多了又慢,
而且少了正統 IDE 的語義解析,定位永遠是純文字編輯器。
但隨著 Vim 8.0 的背景執行和 Neovim 又追加了 lua 的支援,
以及對 LSP 的支援,這個界限也被打破了。

以前 VS Code 不能當主力,因為有些功能還是要 Vim,
例如 Git 的 3-way merge,但是後來 VS Code 也出了這個功能。
https://stackoverflow.com/a/72874300/1592410
What Visual Studio Code extension is good for 3 way (or 4 way) merging? - Stack Overflow
[圖]
I am currently learning Visual Studio Code. I come from a WebStorm background. Is there an option or extension to merge 3 ways? Where in Visual Studio ...

 

Fleet 剛出時有試了一下,不過太陽春了。
而且不知道為什麼他一定要常駐 =.=

我主觀上還是覺得 Neovim 最順手最 solid,
遇過 VS Code 開大檔時 Vim 套件當掉,
不過 IDE 什麼都設好好也是滿方便的,就變成是要寫什麼就用什麼環境。

但調 Neovim 滿花時間的,要學 lua,時不時還要維護,也是很累。
最近看到一個滿喜歡的 freelancer 的 dotfiles 用 LazyVim,
https://www.craftz.dog/
Takuya Matsuyama - Homepage
[圖]
Takuya's homepage ...

 
就想說也來試試 lazy.nvim 作者大神做的包,結果是滿炫砲的但好像太肥了。
變成還要花時間調,那還不如自己來。

大家有沒有推薦什麼炫砲的 Neovim 設定,或是有什麼酷炫的編輯器可以分享?


最後想問一下大家用什麼 CLI shell。

我看 Nushell 評價不錯,
跟 PowerShell 一樣都是 stream 物件化的概念,
但是似乎很少人在討論,不知道用的人多不多?

Fish 本來就很好用了,最近還全部用 Rust 重寫,感覺開發團隊真的很有心。
Fish 套件的生態也比較單純,從頭到尾一套 fisher 就屹立不搖,
不像 Zsh 琳瑯滿目,但沒有人能一統江湖。

但是有些環境例如 Yocto 沒有直接支援,所以也沒辦法換過去。
還有就是主流還是 Bash / Zsh,自己用 Fish 的話,
在文件上寫 Fish 的語法別人用不了等於沒寫,
寫 Bash 語法自己不能用,最後變成要寫二種,
所以我用了一段時間 Fish 後又忍痛換回 Zsh。
不知道現在有沒有什麼好解法?


有人推 replay.fish (Fish-bax),
不過這種重新寫語義解析的方式感覺不是很可靠。
https://stackoverflow.com/a/63163817/1592410
yocto - Source env variables from bitbake-made sdk using Fish - Stack Overflow
[圖]
When you compile a SDK using bitbake and have to source like :
source /opt/poky/.../environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
It can't  ...

 


Zsh 的套件管理器以前 zplug 剛出的時候,可以多緒並行安裝套件很潮,
結果後來發現他安裝很快是沒錯,但是套件載入很慢……

zinit 主打 performance,但我印象他設定小複雜,
所以後來索性用快速小巧簡單的 zi,雖然小眾但是至今沒遇過問題,
搭配 Powerlevel10k 速度飛快。

也因為 Powerlevel10k 設定簡單、功能齊全、效能好,
所以一直沒有去嘗試 Starship。
目前覺得 Powerlevel10k 唯一的缺點是在 MSYS2 的環境啟動很慢。


最後最後想再問一下,既 Go 之後,
這幾年流行用 rust 把一些常見的 GNU utility、package 重寫,
在設計階段融入多執行緒的情況下,效能真的都比較好。

不過不知道有沒有整理好的清單?
目前只有在這邊有看到:
https://github.com/qarmin/Rusty-Linux/blob/main/RustyLinux.sh
Rusty-Linux/RustyLinux.sh at main ·  qarmin/Rusty-Linux ·  GitHub
[圖]
Simple script to install most basic Rust apps as alternative to default one - Rusty-Linux/RustyLinux.sh at main ·  qarmin/Rusty-Linux ...

 

也有看到 https://uutils.github.io/ 不過他比較小眾,
而且 issue 一堆,不知道有沒有人真的拿他當主力?

--
可以頂天立地,也可以狡詐陰險,
可以當個誠實小郎君,也可以嘴裡沒有半句實話;
但是一定不能飄,飄起來的人就是自己騙自己。

          柳岸花又明《我真沒想重生啊》

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.242.7.90 (臺灣)
※ 作者: changyuheng 2024-08-06 13:43:00
※ 文章代碼(AID): #1ciRVmuk (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1722922992.A.E2E.html
moom50302: sourcetree, eclipse, intellij, notepad++1F 08/06 14:00
NDark: git command無敵可以應付80%2F 08/06 14:19

請問為什麼不是應付 100%?可以舉一些例子嗎?

gmoz: source tree好用3F 08/06 14:23
gmoz: 文字檔編輯我用sublime
qwer338859: sourcetree+cmd5F 08/06 14:31
neo5277: 海怪,vscode,bash,小烏龜都有用過 常用還是小烏龜跟bash6F 08/06 14:31
stepnight: git指令大家都一樣7F 08/06 14:33
stepnight: 為了教別人而使用GUI,反而落了下乘吧?
stepnight: 一套指令走天下Vs不同介面不同使用方式
stepnight: 不如叫人好好去把指令學好實在點?

我覺得門檻愈來愈低是趨勢,能夠簡化的盡量簡化,
我們才能有更多空間處理更旁大、複雜的事情。

wanhuaJin: Delphi表示11F 08/06 14:59
labbat: 我寫入git command到程式碼中,然後做成batch script12F 08/06 15:22
labbat: 在檔案總管下執行跟gui有八成像

請問可以分享嗎?

Bencrie: git 直接用命令。編輯器 vscode + clangd。shell 就 bash14F 08/06 15:24
Bencrie: 寫 shell script 的話就照 POSIX 標準走的 ash 系列
sssyoyo: sourcetree就很好用了阿16F 08/06 16:24
tommyptt: 小烏龜17F 08/06 16:25
minipopy0314: sourcetree專案大會很卡 現在都改用fork超順18F 08/06 16:26
ma721: sourcetree19F 08/06 16:30
will6w: Zed20F 08/06 16:39



c800910: git gui我用fork,好用,清除簡單。缺點是我都忘記怎麼21F 08/06 17:09
c800910: 下commant了。
c800910:           清楚*

第一次看到,感謝推薦!請問跟 Sourcetree、TortoiseGit 比較起來如何?

ozaki621205: IDE最近用cursor,還行,跟vs code有八成像24F 08/06 17:44

這個滿酷的!
Cursor 之於文字編輯器就像 Warp 之於 terminal emulator。

sniper2824: 小烏龜25F 08/06 18:01
ck237: 小烏龜26F 08/06 18:03
NDark: 小烏龜 windows27F 08/06 18:16
dmaox3: 小烏龜28F 08/06 18:28
nayeonmywife: git cmd 不會用你敢放心讓他處理repo嗎29F 08/06 18:57
sating00: gitextension30F 08/06 19:06
godddddd: Idea 用過回不去啦31F 08/06 19:10
EPGo: IDE 最近也改成 Cursor32F 08/06 19:13
LiebeLion: fork屌打全部33F 08/06 19:13
ruthertw: 自從用過sourcetree就回不去了34F 08/06 19:14
WaterLengend: JB全家桶,沒煩惱35F 08/06 19:55

JetBrains 真的強

fallen01: gitextension36F 08/06 20:09
ManGo1012: 小烏龜37F 08/06 20:52
luweber88: linux沒sourcetree改用vscode擴充沒大問題38F 08/06 21:07

請問是用什麼,GitLens 嗎?

ga009900: 小烏龜39F 08/06 21:51
SKNNN7: sourcetree 有時候很卡40F 08/06 21:51
andyPKPK: fork41F 08/06 21:55
gn60311: Fork +142F 08/06 22:01
netburst: 小烏龜forever43F 08/06 23:40
netburst: 有在用AS的就知道內建的GIT UI也是屌打SORUCETREE
netburst: 更不用說小烏龜輾壓
kurtsgm: sourcetree + vscode46F 08/07 00:09
kurtsgm: sourcetree UI好用 但之前一直有燒cpu的bug

https://jira.atlassian.com/browse/SRCTREE-7272
真的有這個神奇的 bug

t36085520: tig + neovim + bash48F 08/07 00:13

請問有比較過 Lazygit、GitUI、Neogit、fugitive.vim 嗎?

neo5277: 小烏龜有圖,每一動還會秀指令給你,又不耗資源覺得不錯49F 08/07 01:28
neo5277: 阿

Sourcetree 和小烏龜居然這麼多人用,原來這麼多人用 Windows!

superpandal: 你這個使用經歷就是什麼流行接觸什麼 大家吹捧什麼用51F 08/07 02:33
superpandal: 什麼 在所有使用者一把抓出來一票跟你一模一樣的
superpandal: 當然不沉澱深入使用都可以 都是業界常態

閣下眼光竟如此毒辣,恐怖如斯!

applehpsh: git cmd就門檻最低了吧54F 08/07 02:40

依我的經驗,光 CLI 就是一道很高的檻捏

superpandal: 阿 還好還好55F 08/07 03:22
knives: cli門檻很高?那種人水準也就那樣了,跟他們沒啥好討論的56F 08/07 05:52
knives: 價值
superpandal: cli使用門檻不高 真正了解類unix下cli機制和湊出複雜58F 08/07 08:20
superpandal: 功能的門檻非常高 不了解只能說只懂皮毛了
jobintan: VSCode從數年前剛開始學程式就用到現在…60F 08/07 08:37
jobintan: 一套VSCode雖然算不上IDE,不過該有的東西像是Git、CLI
jobintan: 、文字編輯,應有盡有。
henrylin8086: git我是本格派,下git的command。IDE大型VS CODE,63F 08/07 09:04
henrylin8086: 小型VIM。
MOONY135: VS在linux上不支援 不然我也不想make build65F 08/07 09:04
APTON: Fork66F 08/07 10:23
REDX: 有人用 neovim 寫 code 嗎?67F 08/07 10:43

Neovim 很讚,他也支援 Copilot。
而且他不會有 tab 被 Copilot 吃掉的問題,
可以獨立自訂 AI 和語義補完的熱鍵。

wulouise: 我都用vscode寫c++大型專案啊,只缺class hierarchy tre68F 08/07 12:36
wulouise: e
f26724309: Fork + cli, 有些IDE的內建git會莫名的雷(如Xcode70F 08/07 13:05
guanting886: cli 操作門檻應該沒有你想像的高..現在ai時代都可以71F 08/07 14:55
guanting886: 產生出來告訴你怎麼做了
guanting886: warp terminal 也有將自家的ai模型整在裡面
guanting886: 要打很深的指令 我覺得跟cli無關 那個跟系統的熟悉
guanting886: 度比較有關係 且真的要處理很複雜的 應該寫script去
guanting886: 解決了
guanting886: 不過雖然在cli指令很方便 但為了整體的效率有gui當
guanting886: 然用好用滿,再搭araxis merge更好用

謝謝!第一次聽到這套,請問跟 BeyondCompare 比較起來如何?

Lordaeron: windows 用winmerger 不好用?79F 08/07 17:09

我對 WinMerge 的經驗是他不支援 4-window 3-way merge,
常需要解 conflict 的話很不方便。
https://stackoverflow.com/q/572237/1592410
version control - What's the best three-way merge tool? - Stack Overflow
[圖]
Subversion, Git, Mercurial and others support three-way merges (combining mine, theirs, and the "base" revision) and support graphical tools to resolv ...

 

superpandal: 怎麼會沒關... 熟悉系統能增加運作的了解 但該指令的80F 08/07 20:11
superpandal: feature就是功能 例如bash本身功能就蠻多 但不去了解
superpandal: 等同沒用 而不是該套件本來的用處僅限於此
superpandal: 尤其再搭配其它工具會有不同的火花
lantw44: git 主要用指令,看圖主要用 tig,也會用 gitg 和 gitk。84F 08/07 22:14
lantw44: git add 用 gitg,git diff 用 git-split-diffs 或 meld
lantw44: shell 用 bash,指令記錄開到無限大,方便找就指令回來用
lantw44: 我沒有用真正的 IDE,平時開發環境就是在 screen 開 bash
lantw44: 和 vim,搭配 vim-lsp、asyncomplete.vim、vim-gitgutter
lantw44: vim-airline、vim-fugitive 等外掛。

經典組合喲!

pig0038: sourcetree+cmd90F 08/07 22:33
wrn14897: neovim + fugitive91F 08/08 05:09
j1988922: git 只要會看圖,知道reflog,基本用什麼都不太會有問92F 08/08 06:11
j1988922: 題,指令派最常遇到是rebase -i不會用,gui 可能10年前
j1988922: 就有three way, 不少資深指令派最近才知道,浪費時間

其實上面那個 15 年前貼的問題裡,
就列了不少支援 3-way 4-window merge 的 GUI based 的工具。

我覺得會用一些 TUI、CLI 的工具並不代表偏愛 terminal-like based,
真正的指標應該是有沒有用 tiling window manager。

j1988922: wrap好處是一長串有打錯字照打完,最後用滑鼠點錯字改95F 08/08 06:29
Lordaeron: 人就是這樣2009年沒的,2019也沒,現在都2024了96F 08/08 06:33
Lordaeron: winmerge都不知過了幾版了,有人還停在沒folder comp

WinMerge 應該現在也還不支援 4-window 3-way merge,
最新版的 Git launch 他的參數裡還是只帶三個視窗:
https://github.com/git/git/blob/master/mergetools/winmerge
git/mergetools/winmerge at master ·  git/git ·  GitHub
[圖]
Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing list via GitGitGadget ( Please  ...

 

Lordaeron: 有人還停在只有2way. 而3 way 為何要4 window 我不解98F 08/08 06:35

local、base、remote、merged,好像缺一不可?

labbat: base 很好用,有的程式碼兩邊同時patch過不曉得99F 08/08 12:09
logichom: fork比sourcetree順,不過授權關係乖乖用後者100F 08/08 12:43
Lordaeron: 哦,原來是一份程式三套copy完全不同寫法?不然101F 08/08 13:34
Lordaeron: 不是三個就夠了?merge 到你選定的哪個。
zeki621: vscode extension的 git graph103F 08/08 17:05
ikachann: SourceTree+1 不過有時候習慣直接用IDEA裡面的git功能104F 08/08 19:21
superpandal: 有用過平鋪視窗管理器就知道不是所有程式都適合平鋪105F 08/08 19:40
superpandal: 顯示 個人覺得最好是含有一點點平鋪功能的堆疊視窗管
superpandal: 理器 都是快捷鍵導向 平鋪視窗管理很久前就有人在吹
superpandal: 捧了
superpandal: 真正需要平鋪的狀況也不多
superpandal: 4 window個人是覺得太多 又不喜歡大螢幕 顯示很麻煩
superpandal: rebase還好吧 我都是工作才學用git 真的指令派學學沒
superpandal: 有難度
VScode: 用sourcetree看圖 跟基本操作 要複雜操作會用bash113F 08/09 00:00
t36085520: 我研究完lazygit 跟 gitui 覺得tig是最平衡的。114F 08/09 09:01
t36085520: 複雜的我還是打指令。

感謝分享!

※ 編輯: changyuheng (210.242.7.90 臺灣), 08/09/2024 10:29:28
iamOsaka: fork超頂 我現在都不會下指令了+1116F 08/09 11:29
wulouise: cli最麻煩的就是git add..我覺得任何ui讓你打勾就夠放便117F 08/09 12:44
friends29: GUI: sublime merge CLI: git bash/linux bash/zsh W118F 08/09 14:48
friends29: indows唯一讓我覺得有進步的就是terminal有分頁且可以
friends29: 客製化啟動git bash 絕大多數都是用CLI 只有要撿hunk
friends29: 跟conflict會用GUI
gungunham: neovim 配置推 astronvim 可直接使用社群整理的插件122F 08/09 23:20
papple23g: vscode extension git graph123F 08/10 04:35
chrisho: sourcetree 跨平台 ,用ide的每套都要記很麻煩,統一用124F 08/10 09:17
chrisho: 一種就好
Soros1989: 推 fork126F 08/10 09:37
sarsman: fork讚讚,授權是買斷制的,而且能裝三台,值得支持127F 08/10 11:19
sarsman: 現在都只有做會比較花時間的指令時才會下指令
wulouise: win10就能裝windows terminal了129F 08/10 12:05

--
※ 看板: Soft_Job 文章推薦值: 0 目前人氣: 0 累積人氣: 168 
作者 changyuheng 的最新發文:
點此顯示更多發文記錄
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇