使用git,用命令好還是客戶端好?

後記:在用windows的時候,就覺得cmd特難用,在windows里敲git、node一直覺得很不爽很操蛋。直到用了mac,unix命令和iterm2+zsh的組合才發現原來命令行其實也挺好用的,彩色高亮,自動補全,alias等等。

後來又發現windows用命令行的解決方案:裝個babun也能使用linux命令了,集成zsh和oh-my-zsh,Babun - a windows shell you will love!。windows環境不裝這些用git還是用客戶端吧。


命令行。


GUI客戶端好,但前提是,你能夠用命令行無障礙工作,用GUI只是為了方便。

如果你連git是怎麼工作的都不知道,用gui只是因為你不知道那些命令,也不理解那些命令,用gui可以讓你快速的開始工作的話,那你一定會被git折磨得死去活來。所以,先用命令行,等你完全理解了,再考慮GUI。


作為一個scm,我建議使用命令行。有些工程師對git理解不夠,提交代碼時都是複製粘貼的我寫的sop里的命令,至於命令的每個參數是幹什麼用的,沒有深刻的理解。他們對branch,history也沒什麼概念。他們覺得他們的工作僅僅是改代碼而已,使用git對他們來說像是一種負擔。我們在用gerrit、repo、jenkins,如果對git了解更多點的話,可以更好的利用這些與git有關係的工具,能很大地提升工作效率。但不少工程師在門口就止步了,寧願繞遠路,花很多時間和精力在本可以用工具輕鬆解決的問題上。他們上的code經常會無法merge到主分支上去,還得返工重弄。熟悉git的工程師自己改個manifest讓jenkins用repo抓code編譯test build很輕鬆,但不熟悉的那些工程師,做的manifest不對,編譯出來的版本可能編譯不過,可能根本不是預期想要的。這樣就浪費很多時間和精力,在面對老大、項目經理們的催促時更加慌亂,有時也會拖累同事。作為一個軟體工程師,不要僅僅把自己定位為改代碼的碼農,熟練使用了git對自己絕對是有很大的提升。而git的一些設計也很精妙,研究一下會有很多啟發。


我覺得用什麼不是特別重要,從長遠來看,肯定是用命令好,並且在很多環境下也只有命令可用。

對初學者來說,重要的是下面兩點:

  1. 不要一開始就想吃成胖子,意思是,一開始只需了解基本命令。我教沒接觸過的人用 Git,從來都只教 add, commit, push, pull,最多提一下 branch。初學者需要的是能快速上手並體驗用 Git 做版本控制的感覺,然後根據需求再去學別的命令;

  2. 一定要搞清每個命令是在幹什麼。這一點實際上是很難的。要有一個理解 Git 並且會教的人來講,或者是上網找一個寫得好的教程。

命令行+tig不就全都解決了么


我之前一直用不好git,直到我裝了git extenstion。


我覺得可以從下面幾個方面考慮:

1.你的開發環境。linux開發環境下,客戶端很不好用,甚至無法使用。

2.你的工作壓力。工作壓力大的情況肯定優先選擇上手比較快的客戶端。

3.你的能力提升。如果你希望在git方面有更深的建設,那麼肯定是命令行。

4.操作的複雜度。客戶端大多包含了常用的操作,一些不常用的操作還是需要命令來完成。


一般在ide中使用插件來幫助git

ide外還是喜歡命令行


命令行吧,國內客戶端下載不忍心看


基本操作都用圖形,各種分支關係,內容比對都一目了然。然而部分高級操作在圖形里做不了,果斷上cli


如果只是把git(hub)當網盤用,客戶端足夠了。


也主要使用Xcode和source tree commit 切換分支 新建分支 刪除分支 合併 其他什麼的用命令行 ,Xcode 處理衝突 順帶 commit push


用GUI的時候,要能知道後台CLI運行了什麼,GUI有高效的地方,CLI也有高效的地方,能二者兼備才提升效率

PS:我經常還是用CLI


明白工作原理,用什麼都行!


還是命令行吧,客戶端我怎麼用著這麼糟心呢


主要操作還是命令行,有時候會外加 SourceTree 輔助


會用就好


當然是GUI

你們開機進系統都是自己打命令引導後進入gui嗎?

難道不都是進入圖形後再去研究的cmd嗎?


不考慮人的因素,答案是命令行。否則答案是量力而行


命令行好,GUI就是滑鼠點啊點,或許你都不明白原理是啥,感覺不應該是程序員做的事。


推薦閱讀:

TAG:版本控制系統 | Git | GitHub | GitCafe | GithubPages |