git的常用命令

git init

使用當(dāng)前目錄作為git倉庫


git add

git add <file>將該文件添加到緩存區(qū),如果需要添加所有的文件用git add .


git commit

使用git commit -m " "將緩存區(qū)的內(nèi)容添加到版本庫狞洋," "中填寫本次的提交說明
git commit -am " " = git add . + git commit -m " "


git status

通過git status可以看到當(dāng)前所處的分支淫痰,以及本地倉庫最新更改的文件狀態(tài)
Changes not staged for commit以及no changes added to commit表示有修改的文件但是并沒有準(zhǔn)備提交的修改病瞳,此時(shí)若是我們需要提交該文件践惑,需要先git add <file>再git commit
Changes to be committed表示文件已經(jīng)添加到了暫存區(qū)慎颗,但是還沒提交
nothing to commit, working tree clean表示沒有需要提交的修改乡恕,工作目錄干凈


git diff

通過git diff加文件名可以查看文件具體修改了哪些內(nèi)容


git log

通過git log可以查看之前每次提交的作者、時(shí)間以及提交說明
使用git log --pretty=oneline可以看到每次提交的commit id(版本號(hào))以及提交說明哗总,使用q退出


git reset

通過git reset --hard HEAD^ 可以實(shí)現(xiàn)版本的回退几颜,HEAD表示當(dāng)前版本,HEAD^ 表示上一個(gè)版本讯屈,如果想回退到上上個(gè)版本用HEAD^^ ,^ 個(gè)數(shù)過多可以用數(shù)字表示县习,如HEAD^50
也可以直接使用git reset --hard + 版本號(hào)實(shí)現(xiàn)版本的回退或是回退后的恢復(fù)涮母,版本號(hào)通過git log --pretty=oneline可以得到,使用時(shí)只用輸入前幾位的版本號(hào)即可
如果文件添加到了暫存區(qū)躁愿,但是想丟棄該暫存區(qū)中的修改可以用git reset HEAD <file>


git reflog

通過git reflog可以看到自己每一次操作的命令叛本,也可以用于來查找之前某次版本回退前的版本號(hào)


git cheackout --

使用git checkout -- <file>可以在文件在工作區(qū)的修改撤銷。分2種情況:

  • 文件修改后沒有放到暫存區(qū)彤钟,那么會(huì)撤銷到版本庫的狀態(tài)来候。包括如果文件誤刪了,但是版本庫中有也可以使用
  • 文件添加到了暫存區(qū)逸雹,但是又做了修改营搅,那么會(huì)撤回到暫存區(qū)保存的狀態(tài)
    使用git checkout HEAD會(huì)用HEAD指向的master分支的文件替換暫存區(qū)以及工作區(qū)中的文件

git checkout

git checkout + 分支的名字表示切換到該分支上
git checkout -b + 分支的名字表示創(chuàng)建該分支并切換到該分支上


git rm

如果本地刪除了一個(gè)文件,希望版本庫中也同步刪除梆砸,先git rm <file>转质,再git commit -m " "
如果希望同步刪除本地和暫存區(qū)的文件用git rm -f <file>
如果希望刪除暫存區(qū)的,但保留本地的文件使用git rm --cached <file>


git remote

使用git remote可以查看遠(yuǎn)程庫的信息帖世,使用git remote -v可以顯示遠(yuǎn)程庫更詳細(xì)的信息


git clone

如果想把一個(gè)遠(yuǎn)程庫中的項(xiàng)目直接克隆到本地使用git clone <repo>休蟹,其中repo為git倉庫


git branch

查看當(dāng)前所有的分支,前面標(biāo)有*的是當(dāng)前所處的分支
git branch <branch_name>表示新建一個(gè)分支branch_name
git branch -d + 分支名字表示刪除該分支
git branch -D + 分支名字表示強(qiáng)行刪除一個(gè)還沒有被合并過的分支


git merge

當(dāng)前所處分支1,使用git merge +分支2時(shí)表示將分支2上的操作與分支1合并赂弓,即分支1中指向的提交變?yōu)榉种?的提交
如果需要保存分支2合并到了分支1中的信息绑榴,可以用git merge --no-ff -m " " + 分支2," "中填寫此次提交合并的說明盈魁,以用于保存


git log --graph

使用git log --graph可以看到各分支的合并圖


git stash

  • 直接使用git stash可以將當(dāng)前未提交的工作區(qū)暫時(shí)保存
  • 使用git stash apply可以恢復(fù)工作區(qū)翔怎,但stash中的內(nèi)容不刪除
  • 使用git stash pop可以恢復(fù)工作區(qū)并刪除stash中的內(nèi)容
  • 使用git stash drop可以刪除stash中的內(nèi)容
  • 使用git stash list可以查看stash中保存的內(nèi)容,若多次stash备埃,可以在查看后選擇恢復(fù)指定的內(nèi)容

git push

使用git push origin master可以將本地版本庫中的項(xiàng)目推送到遠(yuǎn)程庫中姓惑,origin為遠(yuǎn)程庫,master為版本庫的分支按脚,如果需要push其他分支可以將master改為其他分支于毙,默認(rèn)push到遠(yuǎn)程庫上的是關(guān)聯(lián)的分支,可以使用git branch --set-upstream-to=origin/branch-name branch-name進(jìn)行關(guān)聯(lián)


git rebase

若此時(shí)有2個(gè)分支


合并前分支圖

A,B,C為之前的提交辅搬,模塊D為遠(yuǎn)程分支origin上的提交唯沮,F(xiàn)、E為本地分支work的提交堪遂,此時(shí)若是要提交介蛉,首先需要將模塊D和模塊F合并,使用git merge可以得到


使用git merge合并后分支圖

為模塊D和模塊F合并的模塊溶褪,work分支上的模塊G币旧,在push前origin分支上是模塊D,此時(shí)若是我們用git log --graph查看會(huì)出現(xiàn)一個(gè)閉合猿妈,不易操作和查看
但是使用git rebase后吹菱,可以得到
使用git rebase合并后分支圖

模塊F'為合并后的模塊,work分支上是模塊F'彭则,在push前origin分支上是模塊D鳍刷,原來模塊E、F提交會(huì)被git rebase取消俯抖,然后保存為補(bǔ)丁patch
rebase的過程中也會(huì)出現(xiàn)沖突输瓜,需要去解決,解決完沖突后芬萍,用git add去更新尤揣,然后無需git commit,直接git rebase --continue担忧,git就會(huì)繼續(xù)應(yīng)用余下的補(bǔ)丁
當(dāng)需要終止rebase的行動(dòng)時(shí):git rebase --abort芹缔,本地分支會(huì)回到開始時(shí)的狀態(tài)
使用rebase可以可以最大程度保證origin代碼不會(huì)被錯(cuò)誤修改


git fetch

從遠(yuǎn)程獲取更新的最新的內(nèi)容到本地,但不進(jìn)行合并


git pull

git pull = git fetch + git merge
git pull -r = git fetch + git rebase


git tag

  • 切換到一個(gè)分支后瓶盛,使用git tag <tagname>即可對(duì)該分支最新提交的commit打上該標(biāo)簽最欠,如果還需要做有說明的標(biāo)簽的話示罗,用git tag -a <tagname> -m " "," "內(nèi)填寫說明
  • 如果想對(duì)之前某次的提交打上標(biāo)簽芝硬,可以先用git log --pretty=oneline找到該提交的commit-id蚜点,然后使用git tag <tagname> commit-id即可
  • 使用git tag可以看到所有的標(biāo)簽列表,使用git show <tagname>可以查看某一標(biāo)簽的信息
  • 標(biāo)簽可以用git tag -d <tagname>進(jìn)行刪除
  • 標(biāo)簽可以用git push origin <tagname>推送到遠(yuǎn)程拌阴,也可以用git push origin --tags把所有未推送的標(biāo)簽全部推送
  • 如果希望刪除一個(gè)遠(yuǎn)程的標(biāo)簽绍绘,先用git tag -d <tagname>刪除本地的標(biāo)簽,再用git push origin :refs/tags/<tagname>進(jìn)行遠(yuǎn)程刪除
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末迟赃,一起剝皮案震驚了整個(gè)濱河市陪拘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纤壁,老刑警劉巖左刽,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異酌媒,居然都是意外死亡欠痴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門秒咨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喇辽,“玉大人,你說我怎么就攤上這事雨席∑凶桑” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵陡厘,是天一觀的道長(zhǎng)旦委。 經(jīng)常有香客問我,道長(zhǎng)雏亚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任摩钙,我火速辦了婚禮罢低,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胖笛。我一直安慰自己网持,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布长踊。 她就那樣靜靜地躺著功舀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪身弊。 梳的紋絲不亂的頭發(fā)上辟汰,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天列敲,我揣著相機(jī)與錄音,去河邊找鬼帖汞。 笑死戴而,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的翩蘸。 我是一名探鬼主播所意,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼催首!你這毒婦竟也來了扶踊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤郎任,失蹤者是張志新(化名)和其女友劉穎秧耗,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涝滴,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绣版,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了歼疮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杂抽。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖韩脏,靈堂內(nèi)的尸體忽然破棺而出缩麸,到底是詐尸還是另有隱情,我是刑警寧澤赡矢,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布杭朱,位于F島的核電站,受9級(jí)特大地震影響吹散,放射性物質(zhì)發(fā)生泄漏弧械。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一空民、第九天 我趴在偏房一處隱蔽的房頂上張望刃唐。 院中可真熱鬧,春花似錦界轩、人聲如沸画饥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抖甘。三九已至,卻和暖如春葫慎,著一層夾襖步出監(jiān)牢的瞬間衔彻,已是汗流浹背薇宠。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留米奸,地道東北人昼接。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像悴晰,于是被迫代替她去往敵國和親慢睡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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

  • Git的常用清單命令整理 名詞: 新建代碼庫 在當(dāng)前目錄新建一個(gè)Git代碼庫$ git init 新建一個(gè)目錄铡溪,將...
    你看我像豆子嘛閱讀 196評(píng)論 0 0
  • 2017/3/4 更新fetch、pull哈扮、rebase相關(guān)的命令纬纪,長(zhǎng)期不定時(shí)更新必要的git命令。 準(zhǔn)備工作: ...
    Jon0418閱讀 1,091評(píng)論 0 26
  • 查看 Git 配置 $ git config用來配置或讀取相應(yīng)的工作環(huán)境變量滑肉。 配置用戶信息 $ git conf...
    thelastcookies閱讀 420評(píng)論 0 0
  • 一包各,.gitignore文件的配置 在提交代碼的時(shí)候,有些東西比如.idea這類本地的文件靶庙,是不需要提交到遠(yuǎn)程的问畅,...
    好多可樂閱讀 544評(píng)論 0 4
  • 日精進(jìn),維修車輛時(shí)有困難仔細(xì)看看六荒,多跟客戶溝通护姆,提高維修效率!
    杜永鵬閱讀 56評(píng)論 0 0