Github小白指南

咳咳夺姑,有如此完美的可視化界面不用墩邀,偏偏要用命令行,何必呢盏浙!

命令行這東西磕蒲,按需獲取留潦,當(dāng)你遇到需要完成的操作無從下手時(shí),可以過來看看辣往,沒必要全部記下來。

老司機(jī)專屬鏈接:Git 常用命令列表

零基礎(chǔ):倉庫初長成

Scene1: 我是項(xiàng)目的創(chuàng)建者殖卑,在git上已經(jīng)創(chuàng)建了一個(gè)新的倉庫站削,我要怎么推送本地代碼到遠(yuǎn)端倉庫?

1. git init // 在項(xiàng)目的根目錄執(zhí)行孵稽,初始化本地倉庫

2. git remote add [rmt_name] [git_url]  // 構(gòu)建遠(yuǎn)程倉庫連接

3. git push [rmt_name] master  // 將本地代碼推送到遠(yuǎn)端的master分支

Scene2: 我是項(xiàng)目的參與者许起,git上已經(jīng)有了代碼倉庫,我要怎么參與開發(fā)菩鲜?

git clone [git_url]  // 復(fù)制遠(yuǎn)程倉庫到本地


入門:貢獻(xiàn)自己一份力

Scene1: 我對(duì)本地倉庫進(jìn)行了修改园细,我要怎么提交到遠(yuǎn)端倉庫?

1. git status  // 查看哪些文件被修改了接校,發(fā)現(xiàn)所有的文件修改都是你所希望的

2. git add .    // 將所有的文件修改都添加到暫存區(qū)

3. git commit -m "本次提交的信息"  // 將暫存區(qū)的內(nèi)容提交到本地倉庫

4. git pull [origin] [branch_name]    // 拉取并合并遠(yuǎn)端的倉庫,發(fā)現(xiàn)沒有任何沖突,太開心了

5. git push [origin] [branch_name] // 將本地倉庫提交到遠(yuǎn)端倉庫

Scene2: 我想撤銷對(duì)某些文件的修改(還沒有add)

1. git status // 查看哪些文件被修改了枢步,發(fā)現(xiàn)有些文件不應(yīng)該被修改

2. git checkout [file_name] // 撤銷對(duì)原有文件的修改嘉竟,如果有多個(gè)文件,重復(fù)執(zhí)行此操作

// 2. 如果想撤銷所有修改诽凌,git checkout .

3. git clean -df // 恢復(fù)新增的或刪除的文件

Scene3: 我想撤回add操作(已經(jīng)add但是還沒commit)

git reset    // 把a(bǔ)dd的文件全部從暫存區(qū)取出來毡熏,如果只想取出單個(gè)文件,后面可以跟文件名

Scene4: 我想撤回commit操作(已經(jīng)commit但是還沒有進(jìn)行push)

1. git log      // 查看所有的提交日志侣诵,復(fù)制上一次commit的commit_id

2. git reset --soft [commit_id] // 撤銷此次commit并保留所有的修改

Scene5: 我進(jìn)行了commit操作痢法,但是我發(fā)現(xiàn)我的標(biāo)簽寫錯(cuò)了,怎么辦杜顺?

1. git commit --amend  // 執(zhí)行后編輯信息保存即可(你可能需要一些簡單的vim知識(shí))

2. git commit --amend --reset-author    // 修改上一次提交的作者信息

Scene6: 我想回滾到之前的某一個(gè)版本

1. git log // 查看提交日志财搁,復(fù)制你想要回滾到的那一次提交的commit_id

// 注意:此次回滾為強(qiáng)制回滾,這之后的所有修改都不會(huì)被保存

// 如果你后悔了哑舒,只需要到遠(yuǎn)端倉庫中復(fù)制當(dāng)前head的commit_id再執(zhí)行一遍此操作即可

2. git reset --hard [commit_id]

// 此操作紅色報(bào)警妇拯,不到萬不得已千萬不要用!O赐摇越锈!

3. git push -f [rmt_name] [branch_name]  // 強(qiáng)制覆蓋遠(yuǎn)端倉庫,即進(jìn)行遠(yuǎn)端倉庫的回滾膘滨,此操作不可逆

Scene7: 最不想看到的結(jié)果甘凭,pull或者merge的時(shí)候發(fā)生沖突了

1. 根據(jù)合并結(jié)果對(duì)所有的沖突進(jìn)行手動(dòng)處理

2. git add .

3. git commit -m "合并信息"    // 重新提交一遍

4. git push [rmt_name] [branch_name]

Scene8: 想查看某個(gè)文件具體的修改內(nèi)容?

git diff [file_name] // 對(duì)比該文件修改前后的區(qū)別火邓,如果無文件名將對(duì)比所有文件的修改

Scene9:我想查看所有的提交記錄

1. git log      // 查看所有的提交記錄

2. git log [branch_name]  // 查看某分支的提交記錄

3. glog    // 等價(jià)于 git log --oneline丹弱,簡化日志德撬,一次提交占一行,有利于全局觀察


進(jìn)階:花里胡哨的一份力

Scene1: 我要新建一個(gè)分支

1. git branch [new_branch_name]      // 創(chuàng)建一個(gè)新的分支

2. git checkout [new_branch_name]    // 如果需要切換到新分支請(qǐng)執(zhí)行此命令

// 上面兩個(gè)步驟可以合并為 git checkout -b [branch_name]

Scene2: 我要查看現(xiàn)有的所有分支

git branch  // 查看分支

Scene3: 分支開發(fā)完了躲胳,我要合并到主分支master上

1. git checkout master  // 切換到master

2. git merge [branch_name]    // 合并分支到master蜓洪,如果有沖突,你懂的

3. git merge --patch [branch_name] [file_name]  // 只合并單個(gè)文件到master上坯苹,比較少用

Scene4: 分支開發(fā)完了隆檀,也就沒有存在的必要了

1. git branch -d [branch_name]    // 刪除本地分支, -d會(huì)判斷是否合并,-D會(huì)強(qiáng)制刪除

2. git push rmt --delete [branch_name]    // 刪除遠(yuǎn)程倉庫的分支


大師:優(yōu)化提交記錄 - rebase

  • 超高能警報(bào)4馀取恐仑!雖然rebase可以簡化提交記錄,如果你用的是 Source Tree 等可視化工具为鳄,那么點(diǎn)一下就可以了裳仆,如果是用的命令行,請(qǐng)?jiān)谑炀毷褂眠^ rebase 命令的高手陪伴下使用該命令9虑铡F缯濉!否則K狙怠9辜瘛!后果你承擔(dān)不起?遣隆9椿铡!

普通的提交最大的問題统扳,就是有太多的 commit喘帚,當(dāng)參與人數(shù)較多時(shí),會(huì)出現(xiàn)大量的如merge這種無用的commit日志咒钟,而且在查看提交記錄圖時(shí)吹由,會(huì)有很多從分支上合并到主分支的線條,看起來不美觀朱嘴。


// 下面的流程會(huì)把本地的commit一一粘貼到master上倾鲫,而不是merge

// 2、3步驟可以合并為 git pull -rebase orgin master

1. git commit -m ''

2. git fetch orgin/master

3. git rebase orgin/master

4. git push orgin master


無卵用:不常用但是一定會(huì)用到的命令

Scene1: 管理現(xiàn)有的倉庫鏈接

1. git remote  // 查看現(xiàn)有的遠(yuǎn)程倉庫鏈接名

2. git remote -v    // 相比于上一條多了url信息萍嬉,更加詳細(xì)

3. git remote rm [rmt_name]  // 刪除一個(gè)現(xiàn)有鏈接

Scene2: 配置本地git的信息

1. git config --global user.name [user_name]  // 配置用戶名

2. git config --global user.email  [user_email]  // 配置郵箱

打標(biāo)簽(tag)


1. git tag v1.0 commit_id  // 給某一此commit添加tag

2. git push origin master --tags // 把本地的標(biāo)簽push到遠(yuǎn)程倉庫

<span id="list"></span>

Git 常用命令列表


1. git init // 初始化本地倉庫

2. git remote add [rmt_name] [git_url]  // 構(gòu)建遠(yuǎn)程倉庫連接

3. git pull [rmt_name] [branch_name]  // 拉取遠(yuǎn)程分支并自動(dòng)合并

4. git push [rmt_name] [branch_name]  // 將本地代碼推送到遠(yuǎn)端的master分支

5. git fetch [rmt_name] [branch_name] // 拉取遠(yuǎn)程分支乌昔,但不自動(dòng)

6. git clone [git_url]  // 拷貝遠(yuǎn)程倉庫到本地

7. git status  // 查看哪些文件被修改了,發(fā)現(xiàn)所有的文件修改都是你所希望的

8. git add .    // 將所有的文件修改都添加到暫存區(qū)

9. git commit -m "本次提交的信息"  // 將暫存區(qū)的內(nèi)容提交到本地倉庫

10. git checkout [file_name] // 撤銷對(duì)原有文件的修改壤追,如果有多個(gè)文件磕道,重復(fù)執(zhí)行此操作

11. git checkout . // 撤銷本次所有的修改

12. git clean -df // 恢復(fù)新增的或刪除的文件

13. git reset    // 把a(bǔ)dd的文件全部從暫存區(qū)取出來,如果只想取出單個(gè)文件行冰,后面可以跟文件名

14. git reset --soft [commit_id] // 撤銷此次commit并保留所有的修改

15. git reset --hard [commit_id] // 撤銷此次commit并刪除所有的修改

16. git log      // 查看所有的提交日志

17. git log --oneline // 查看所有的提交日志(簡化版)

18. git log [branch_name]  // 查看某分支的提交記錄

19. git commit --amend  // 修改上一次提交的信息(未push)

20. git commit --amend --reset-author    // 修改上一次提交的作者信息(未push)

21. git push -f [rmt_name] [branch_name]  // 強(qiáng)制覆蓋遠(yuǎn)端倉庫溺蕉,即進(jìn)行遠(yuǎn)端倉庫的回滾伶丐,此操作不可逆

22. git diff [file_name] // 對(duì)比該文件修改前后的區(qū)別,如果無文件名將對(duì)比所有文件的修改

23. git branch [new_branch_name]      // 創(chuàng)建一個(gè)新的分支

24. git checkout [new_branch_name]    // 切換到新分支

25. git branch  // 查看分支

26. git merge [branch_name]    // 合并分支

27. git merge --patch [branch_name] [file_name]  // 只合并單個(gè)文件

28. git branch -d [branch_name]    // 刪除本地分支, -d會(huì)判斷是否合并疯特,-D會(huì)強(qiáng)制刪除

29. git push rmt --delete [branch_name]    // 刪除遠(yuǎn)程倉庫的分支

30. git remote  // 查看現(xiàn)有的遠(yuǎn)程倉庫鏈接名

31. git remote -v    // 相比于上一條多了url信息哗魂,更加詳細(xì)

32. git remote rm [rmt_name]  // 刪除一個(gè)現(xiàn)有鏈接

33. git config --global user.name [user_name]  // 配置用戶名

34. git config --global user.email  [user_email]  // 配置郵箱

35. git tag v1.0 commit_id  // 給某一此commit添加tag

36. git push origin master --tags // 把本地的標(biāo)簽push到遠(yuǎn)程倉庫

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辙芍,隨后出現(xiàn)的幾起案子啡彬,更是在濱河造成了極大的恐慌,老刑警劉巖故硅,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異纵搁,居然都是意外死亡吃衅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門腾誉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徘层,“玉大人,你說我怎么就攤上這事利职∪ばВ” “怎么了?”我有些...
    開封第一講書人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵猪贪,是天一觀的道長跷敬。 經(jīng)常有香客問我,道長热押,這世上最難降的妖魔是什么西傀? 我笑而不...
    開封第一講書人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮桶癣,結(jié)果婚禮上拥褂,老公的妹妹穿的比我還像新娘。我一直安慰自己牙寞,他們只是感情好饺鹃,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著间雀,像睡著了一般悔详。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雷蹂,一...
    開封第一講書人閱讀 52,184評(píng)論 1 308
  • 那天伟端,我揣著相機(jī)與錄音,去河邊找鬼匪煌。 笑死责蝠,一個(gè)胖子當(dāng)著我的面吹牛党巾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播霜医,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼齿拂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肴敛?” 一聲冷哼從身側(cè)響起署海,我...
    開封第一講書人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎医男,沒想到半個(gè)月后砸狞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡镀梭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年刀森,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片报账。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡研底,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出透罢,到底是詐尸還是另有隱情榜晦,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布羽圃,位于F島的核電站乾胶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏统屈。R本人自食惡果不足惜胚吁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望愁憔。 院中可真熱鬧腕扶,春花似錦、人聲如沸吨掌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膜宋。三九已至窿侈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間秋茫,已是汗流浹背史简。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肛著,地道東北人圆兵。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓跺讯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親殉农。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刀脏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,491評(píng)論 1 26
  • 前言 Git使用教程 Git是什么 Git是一個(gè)開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目超凳。 ...
    90后的思維閱讀 911評(píng)論 0 0
  • Git使用教程:https://blog.csdn.net/tgbus18990140382/article/de...
    SkTj閱讀 2,805評(píng)論 1 11
  • 三大區(qū)域: 工作區(qū) → 緩存區(qū) → 本地倉庫 一 愈污、 使用 git config 命令進(jìn)行配置: git ...
    Manchangdx閱讀 2,846評(píng)論 0 2
  • 現(xiàn)實(shí) 零距離身處其中 如白蒙蒙見底的湖水 單調(diào)無味 另人興致索然 理想 遠(yuǎn)距離處在其外 如云霧繚繞的芙蓉 無限遐想...
    roadunderfoot閱讀 381評(píng)論 0 1