git

目 錄

初始化配置 2

查看蝗肪、添加抗楔、提交、刪除、找回苔可,重置修改文件 2

查看文件diff 2

查看提交記錄 3

取得Git倉庫 3

提交你的修改 3

查看召边、切換粪滤、創(chuàng)建和刪除分支 4

分支合并和rebase 4

Git補(bǔ)丁管理(方便在多臺機(jī)器上開發(fā)同步時用) 4

Git暫存管理 4

Git遠(yuǎn)程分支管理 4

基本的分支管理 5

Git遠(yuǎn)程倉庫管理 5

創(chuàng)建遠(yuǎn)程倉庫 5

初始化配置

  1. 配置使用git倉庫的人員姓名

  2. git config --global user.name "Your Name Comes Here"

  3. 配置使用git倉庫的人員email

  4. git config --global user.email you@yourdomain.example.com

  5. 配置到緩存默認(rèn)15分鐘

  6. git config --global credential.helper cache

  7. 修改緩存時間

  8. git config --global credential.helper 'cache --timeout=3600'

  9. git config --global color.ui true

  10. git config --global alias.co checkout

  11. git config --global alias.ci commit

  12. git config --global alias.st status

  13. git config --global alias.br branch

  14. git config --global core.editor "mate -w" # 設(shè)置Editor使用textmate

  15. git config -1 #列舉所有配置

  16. 用戶的git配置文件~/.gitconfig

查看官套、添加、提交拼卵、刪除奢浑、找回,重置修改文件

  1. git help <command> # 顯示command的help

  2. git show # 顯示某次提交的內(nèi)容

  3. git show $id

  4. git co -- <file> # 拋棄工作區(qū)修改

  5. git co . # 拋棄工作區(qū)修改

  6. git add <file> # 將工作文件修改提交到本地暫存區(qū)

  7. git add . # 將所有修改過的工作文件提交暫存區(qū)

  8. git rm <file> # 從版本庫中刪除文件

  9. git rm <file> --cached # 從版本庫中刪除文件腋腮,但不刪除文件

  10. git reset <file> # 從暫存區(qū)恢復(fù)到工作文件

  11. git reset -- . # 從暫存區(qū)恢復(fù)到工作文件

  12. git reset --hard # 恢復(fù)最近一次提交過的狀態(tài)雀彼,即放棄上次提交后的所有本次修改

  13. git ci <file>

  14. git ci .

  15. git ci -a # 將git add, git rm和git ci等操作都合并在一起做

  16. git ci -am "some comments"

  17. git ci --amend # 修改最后一次提交記錄

  18. git revert <$id> # 恢復(fù)某次提交的狀態(tài),恢復(fù)動作本身也創(chuàng)建了一次提交對象

  19. git revert HEAD # 恢復(fù)最后一次提交的狀態(tài)

查看文件diff

  1. git diff <file> # 比較當(dāng)前文件和暫存區(qū)文件差異

  2. git diff

  3. git diff <id1> <id2> # 比較兩次提交之間的差異

  4. git diff <branch1>..<branch2> # 在兩個分支之間比較

  5. git diff --staged # 比較暫存區(qū)和版本庫差異

  6. git diff --cached # 比較暫存區(qū)和版本庫差異

  7. git diff --stat # 僅僅比較統(tǒng)計信息

查看提交記錄

  1. git log

  2. git log <file> # 查看該文件每次提交記錄

  3. git log -p <file> # 查看每次詳細(xì)修改內(nèi)容的diff

  4. git log -p -2 # 查看最近兩次詳細(xì)修改內(nèi)容的diff

  5. git log --stat #查看提交統(tǒng)計信息

tig

Mac上可以使用tig代替diff和log即寡,brew install tig

取得Git倉庫

  1. 初始化一個版本倉庫

  2. git init

  3. Clone遠(yuǎn)程版本庫

  4. git clone git@xbc.me:wordpress.git

  5. 添加遠(yuǎn)程版本庫origin徊哑,語法為 git remote add [shortname] [url]

  6. git remote add origin git@xbc.me:wordpress.git

  7. 查看遠(yuǎn)程倉庫

  8. git remote -v

提交你的修改

  1. 添加當(dāng)前修改的文件到暫存區(qū)

  2. git add .

  3. 如果你自動追蹤文件,包括你已經(jīng)手動刪除的聪富,狀態(tài)為Deleted的文件

  4. git add -u

  5. 提交你的修改

  6. git commit –m "你的注釋"

  7. 推送你的更新到遠(yuǎn)程服務(wù)器,語法為 git push [遠(yuǎn)程名] [本地分支]:[遠(yuǎn)程分支]

  8. git push origin master

  9. 查看文件狀態(tài)

  10. git status

  11. 跟蹤新文件

  12. git add readme.txt

  13. 從當(dāng)前跟蹤列表移除文件莺丑,并完全刪除

  14. git rm readme.txt

  15. 僅在暫存區(qū)刪除,保留文件在當(dāng)前目錄墩蔓,不再跟蹤

  16. git rm –cached readme.txt

  17. 重命名文件

  18. git mv reademe.txt readme

  19. 查看提交的歷史記錄

  20. git log

  21. 修改最后一次提交注釋的梢莽,利用–amend參數(shù)

  22. git commit --amend

  23. 忘記提交某些修改,下面的三條命令只會得到一個提交奸披。

  24. git commit –m "add readme.txt"

  25. git add readme_forgotten

  26. git commit –amend

  27. 假設(shè)你已經(jīng)使用git add .昏名,將修改過的文件a、b加到暫存區(qū)

  28. 現(xiàn)在你只想提交a文件阵面,不想提交b文件轻局,應(yīng)該這樣

  29. git reset HEAD b

  30. 取消對文件的修改

  31. git checkout –- readme.txt

查看洪鸭、切換、創(chuàng)建和刪除分支

  1. git br -r # 查看遠(yuǎn)程分支

  2. git br <new_branch> # 創(chuàng)建新的分支

  3. git br -v # 查看各個分支最后提交信息

  4. git br --merged # 查看已經(jīng)被合并到當(dāng)前分支的分支

  5. git br --no-merged # 查看尚未被合并到當(dāng)前分支的分支

  6. git co <branch> # 切換到某個分支

  7. git co -b <new_branch> # 創(chuàng)建新的分支仑扑,并且切換過去

  8. git co -b <new_branch> <branch> # 基于branch創(chuàng)建新的new_branch

  9. git co $id # 把某次歷史提交記錄checkout出來览爵,但無分支信息,切換到其他分支會自動刪除

  10. git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來镇饮,創(chuàng)建成一個分支

  11. git br -d <branch> # 刪除某個分支

  12. git br -D <branch> # 強(qiáng)制刪除某個分支 (未被合并的分支被刪除的時候需要強(qiáng)制)

分支合并和rebase

  1. git merge <branch> # 將branch分支合并到當(dāng)前分支

  2. git merge origin/master --no-ff # 不要Fast-Foward合并蜓竹,這樣可以生成merge提交

  3. git rebase master <branch> # 將master rebase到branch,相當(dāng)于:

  4. git co <branch> && git rebase master && git co master && git merge <branch>

Git補(bǔ)丁管理(方便在多臺機(jī)器上開發(fā)同步時用)

  1. git diff > ../sync.patch # 生成補(bǔ)丁

  2. git apply ../sync.patch # 打補(bǔ)丁

  3. git apply --check ../sync.patch #測試補(bǔ)丁能否成功

Git暫存管理

  1. git stash # 暫存

  2. git stash list # 列所有stash

  3. git stash apply # 恢復(fù)暫存的內(nèi)容

  4. git stash drop # 刪除暫存區(qū)

Git遠(yuǎn)程分支管理

  1. git pull # 抓取遠(yuǎn)程倉庫所有分支更新并合并到本地

  2. git pull --no-ff # 抓取遠(yuǎn)程倉庫所有分支更新并合并到本地储藐,不要快進(jìn)合并

  3. git fetch origin # 抓取遠(yuǎn)程倉庫更新

  4. git merge origin/master # 將遠(yuǎn)程主分支合并到本地當(dāng)前分支

  5. git co --track origin/branch # 跟蹤某個遠(yuǎn)程分支創(chuàng)建相應(yīng)的本地分支

  6. git co -b <local_branch> origin/<remote_branch> # 基于遠(yuǎn)程分支創(chuàng)建本地分支梅肤,功能同上

  7. git push # push所有分支

  8. git push origin master # 將本地主分支推到遠(yuǎn)程主分支

  9. git push -u origin master # 將本地主分支推到遠(yuǎn)程(如無遠(yuǎn)程主分支則創(chuàng)建,用于初始化遠(yuǎn)程倉庫)

  10. git push origin <local_branch> # 創(chuàng)建遠(yuǎn)程分支邑茄, origin是遠(yuǎn)程倉庫名

  11. git push origin <local_branch>:<remote_branch> # 創(chuàng)建遠(yuǎn)程分支

  12. git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然后再push刪除遠(yuǎn)程分支

基本的分支管理

  1. 創(chuàng)建一個分支

  2. git branch dev

  3. 切換工作目錄到dev

  4. git chekcout dev

  5. 將上面的命令合在一起俊啼,創(chuàng)建dev分支并切換到dev

  6. git chekcout –b dev

  7. 合并dev分支肺缕,當(dāng)前工作目錄為master

  8. git merge dev

  9. 合并完成后,沒有出現(xiàn)沖突授帕,刪除dev分支

  10. git branch –d dev

  11. 拉去遠(yuǎn)程倉庫的數(shù)據(jù)同木,語法為 git fetch [remote-name]

  12. git fetch

  13. fetch 會拉去最新的遠(yuǎn)程倉庫數(shù)據(jù),但不會自動到當(dāng)前目錄下跛十,要自動合并

  14. git pull

  15. 查看遠(yuǎn)程倉庫的信息

  16. git remote show origin

  17. 建立本地的dev分支追蹤遠(yuǎn)程倉庫的develop分支

  18. git checkout –b dev origin/develop

Git遠(yuǎn)程倉庫管理

  1. git remote -v # 查看遠(yuǎn)程服務(wù)器地址和倉庫名稱

  2. git remote show origin # 查看遠(yuǎn)程服務(wù)器倉庫狀態(tài)

  3. git remote add origin git@ github:robbin/robbin_site.git # 添加遠(yuǎn)程倉庫地址

  4. git remote set-url origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠(yuǎn)程倉庫地址(用于修改遠(yuǎn)程倉庫地址)

  5. git remote rm <repository> # 刪除遠(yuǎn)程倉庫

創(chuàng)建遠(yuǎn)程倉庫

  1. git clone --bare robbin_site robbin_site.git # 用帶版本的項目創(chuàng)建純版本倉庫

  2. scp -r my_project.git git@ git.csdn.net:~ # 將純倉庫上傳到服務(wù)器上

  3. mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服務(wù)器創(chuàng)建純倉庫

  4. git remote add origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠(yuǎn)程倉庫地址

  5. git push -u origin master # 客戶端首次提交

  6. git push -u origin develop # 首次將本地develop分支提交到遠(yuǎn)程develop分支彤路,并且track

  7. git remote set-head origin master # 設(shè)置遠(yuǎn)程倉庫的HEAD指向master分支

也可以命令設(shè)置跟蹤遠(yuǎn)程庫和本地庫

  1. git branch --set-upstream master origin/master

  2. git branch --set-upstream develop origin/develop

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市芥映,隨后出現(xiàn)的幾起案子洲尊,更是在濱河造成了極大的恐慌,老刑警劉巖奈偏,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坞嘀,死亡現(xiàn)場離奇詭異,居然都是意外死亡惊来,警方通過查閱死者的電腦和手機(jī)丽涩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來裁蚁,“玉大人矢渊,你說我怎么就攤上這事⊥髦ぃ” “怎么了矮男?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長刽严。 經(jīng)常有香客問我昂灵,道長避凝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任眨补,我火速辦了婚禮管削,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘撑螺。我一直安慰自己含思,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布甘晤。 她就那樣靜靜地躺著含潘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪线婚。 梳的紋絲不亂的頭發(fā)上遏弱,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機(jī)與錄音塞弊,去河邊找鬼漱逸。 笑死,一個胖子當(dāng)著我的面吹牛游沿,可吹牛的內(nèi)容都是我干的饰抒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼诀黍,長吁一口氣:“原來是場噩夢啊……” “哼袋坑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起眯勾,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤枣宫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吃环,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體镶柱,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年模叙,在試婚紗的時候發(fā)現(xiàn)自己被綠了歇拆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡范咨,死狀恐怖故觅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渠啊,我是刑警寧澤输吏,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站替蛉,受9級特大地震影響贯溅,放射性物質(zhì)發(fā)生泄漏拄氯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一它浅、第九天 我趴在偏房一處隱蔽的房頂上張望译柏。 院中可真熱鬧,春花似錦姐霍、人聲如沸鄙麦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胯府。三九已至,卻和暖如春恨胚,著一層夾襖步出監(jiān)牢的瞬間骂因,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工赃泡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留侣签,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓急迂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蹦肴。 傳聞我的和親對象是個殘疾皇子僚碎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

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

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來阴幌。這樣一來勺阐,任何一處協(xié)同...
    __silhouette閱讀 15,887評論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 3,921評論 0 11
  • git branch 查看本地所有分支 git status 查看當(dāng)前狀態(tài) git commit 提交 git b...
    猿萬閱讀 5,056評論 1 45
  • 一矛双、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看當(dāng)前狀態(tài) git c...
    LOVE_晴天閱讀 2,324評論 0 10
  • Sir給大家講個笑話懒闷。 有一個公眾號,半年前發(fā)了篇文章栈幸,信誓旦旦說要“干掉自己”,然后…… 它被干掉了速址。 這個公眾...
    Sir電影閱讀 1,617評論 9 17