Git 命令大全

初識 git

Git 是一個免費的開放源碼的 分布式版本控制系統,用于處理從小到大的項目,速度和效率的一切。
Git 易于學習,具有 閃電般快速的性能,占地面積小。它超越了像 Subversion,CVS,Perforce 和 ClearCase 這樣的 SCM 工具,具有易操作的本地分支,便利的分段區域多個工作流等功能

git 命令

  • git:查看 git 是否安裝成功

  • git init:創建倉庫

  • git status:查看當前狀態

  • git add:添加到暫存區,等待被提交,還沒真正在倉庫

  • git rm --cached:移除添加的緩存,與 git add 相對應

  • git commit -m "描述信息":提交到倉庫,并添加描述信息

  • git log:查看所有產生的 commit 記錄

  • git branch:查看當前分支情況

  • git branch -r:查看遠程分支

  • git branch X:創建 X 分支

  • git checkout X:切換到 X 分支

  • git checkout X.XX:撤銷到原來的 X.XX 文件(只對沒有執行 git add 文件有效)

  • git checkout -b X:創建 X 分支,并且自動切換到 X 分支

  • git merge X:將 X 分支合并到主分支,前提是先切換到主分支(暴力合并但條理清晰)

  • git rebase X:將 X 分支合并到主分支,前提是先切換到主分支(進行比較排序合并但條理不清晰)

  • git branch -d X:刪除 X 分支,前提是已經合并到主分支,否則不能刪除

  • git branch -D X:強行刪除 X 分支,無論什么情況

  • git push origin :X:刪除遠程 X 分支

  • git checkout X origin/X:將遠程 X 分支遷到本地并以 X 命名分支(遠程有 X 分支而本地沒有的情況下)

  • git checkout -b X origin/X:將遠程 X 分支遷到本地并以 X 命名分支并切換到該分支(遠程有 X 分支而本地沒有的情況下)

  • git tag:查看歷史 tag 記錄

  • git tag v1.0:創建 v1.0 標簽

  • git checkout v1.0:切換到 v1.0 版本狀態

  • git diff:比較差異(紅色顯示刪除的內容,綠色顯示增加的內容)

  • git diff <?id2>:比較兩次提交之間的差異

  • git diff <branch1>..<branch2>:比較兩分支之間的差異

  • git diff --staged:比較暫存區和版本庫之間的差異

  • git stash:把當前分支所有沒 commit 得代碼暫存起來

  • git stash list:查看暫存區記錄

  • git stash apply:暫存申請還原,繼續上次暫存處

  • git stash drop:刪除最近一條暫存區記錄

  • git stash pop:還原上次暫存處并刪除最近一條暫存區記錄(相當于執行 git stash apply + git stash drop)

  • git stash clear:清空所有暫存區記錄

  • ssh:查看是否安裝 SSH(一種網絡協議,用于計算機之間加密登陸)

  • ssh-keygen -t rsa:指定 rsa 算法生成密鑰,接著連續三個回車生成兩個文件 id_rsa 和 id_rsa.pub,id_rsa 是密鑰,id_rsa.pub 是公鑰,兩個文件默認生成目錄:Mac/Linux 系統在:~/.ssh 下,Windows 系統在:/c/Documents and Settings/username/.ssh 下,為隱藏文件

  • ssh -T git@github.com:測試 SSH key 是否添加成功

  • git clone git@github.com:github用戶名/倉庫名稱:將遠程 github 倉庫克隆到本地

  • git push origin master:將本地代碼推到遠程 master 分支,保持代碼同步(push 之前先 pull,避免沖突)

  • git pull origin master:把遠程 master 分支代碼拉到本地,保持代碼同步(push 之前先 pull,避免沖突)

  • git remote -v:查看當前項目有哪些遠程倉庫

  • git config --global user.name "用戶名":設置全局用戶名

  • git config --global user.email "郵箱":設置全局郵箱

  • git config --global user.name :查詢全局用戶名

  • git config --global user.email:查詢全局郵箱

  • git config user.name "用戶名":設置當前用戶名

  • git config user.email "郵箱":設置當前郵箱

  • git config user.name :查詢當前用戶名

  • git config user.email:查詢當前郵箱

  • git config --global alias.co commit:給 commit 指令設置全局別名為co(其他指令以此類推)

  • git config --global alias.psm 'push origin master':給 push origin master 組合指令設置全局別名為 psm(其他組合指令以此類推)

git 設置

  • git config --global core.editor "vim":設置 editor 使用 vim

  • git config --global color.ui true:開啟 git 著色

  • git config --global core.quotepath false:設置顯示中文文件名

團隊合作利器 Git Flow

Git Flow 是一種比較成熟的分支管理流程,比較適合三五個人團隊合作開發項目,是一種多人協作下的分支管理規范。點此查看 Git Flow 安裝使用

工作流程
通過一張圖描述整個工作流程:

Git Flow 分支工作流程圖

各階段名詞解釋

  • master:永遠處在即將發布狀態。
  • develop:最新開發狀態。
  • feature:開發新功能的分支,基于 develop 分支,完成后 merge 回 develop。
  • release:準備要發布版本的分支,用來修復 bug,基于 develop,完成后 * * merge 回 develop 和 master。
  • hotfix:修復 master 上的問題,等不及 release 版本就必須馬上上線,基于 master,完成后 merge 回 master 和 develop。

相關規范

  • git branch feature/A:假設已經有 master 和 develop 兩個分支,需要添加新功能 A,第一步要做的就是基于 develop 新建一個分支 A,規定所有開發的功能都以 feature 為前綴。
  • git branch hotfix/B:出現緊急 bug 修復的情況下,立刻切換到 master 分支,然后在此基礎上新建分支 B,代表新建了一個緊急修復分支,修復完成后合并到 develop 和 master,然后發布。
  • git branch release/1.0:feature 新功能開發完了,合并回 develop 分支,感覺可以發布到正式環境了,新建一個 release 分支。期間發現 bug 直接修改,直到達到發布標準,最后把該分支合并到 develop 和 master 然后進行發布。

專業名詞解釋

  • status:狀態
  • cached:貯藏
  • stash:暫存
  • commit:提交
  • checkout:切換
  • branch:分支
  • diff:差異
  • clone:克隆
  • push:推
  • pull:拉
  • origin:原點
  • remote:遠程
  • global:全局
  • conflicts:沖突

吐血推薦

learn-github-from-zero-pdf 是 Android 大神 stormzhang 的良心之作,本篇博客就是閱讀此教程提煉的。希望你看完他的教程能有自己的收獲。
原創不易,請尊重他人的勞動成果,歡迎轉載,但請注明出處。

morninggeng
05/04/2017

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,637評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,555評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,900評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,629評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,976評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評論 3 448
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,139評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,686評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,411評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,641評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,820評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,233評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,567評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,362評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,604評論 2 380

推薦閱讀更多精彩內容

  • Add & Commit git init 初始化一個 Git 倉庫(repository),即把當前所在目錄變成...
    冬絮閱讀 4,880評論 0 9
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,537評論 1 26
  • Git命令 # git知識點 ##用命令行創建一個新的存儲庫 echo "# Documents" >> READ...
    呼呼哥閱讀 394評論 0 0
  • git init # 初始化本地git倉庫(創建...
    Babyzpj閱讀 262評論 0 0
  • 有話說,未曾聽完先回答的,便是他的愚昧。就是心急發言,搶話說,這個毛病在我身上存在很久了,以前嚴重,現在...
    先謙虛后受益閱讀 719評論 1 4