常用Git命令匯總

跟著R哥來到了新公司(一個(gè)從硬件向互聯(lián)網(wǎng)轉(zhuǎn)型中的公司)劫狠,新公司以前的代碼基本是使用SVN做版本控制打掘,所以R哥叫HG做了一次Git分享菱农,準(zhǔn)備把公司所有的代碼用Git作版本控制。平時(shí)自己雖然天天使用Git拆火,但是總感覺知識(shí)有些零散,于是匯總了一些常用的Git命令涂圆。

常用配置

--system #系統(tǒng)級(jí)別
--global #用戶全局
--local #單獨(dú)一個(gè)項(xiàng)目
git config --global user.name "xxxx" #用戶名
git config --global user.email "xxxx@xxx.com" #郵箱
git config --global core.editor vim #編輯器

git config --global alias.st status #按這種方法们镜,配置別名
git config -l #列舉所有配置

Git中3種狀態(tài)的一些操作

#將工作區(qū)的修改提交到暫存區(qū)
git add <file>
git add . 
#------------------------------------------

#將暫存區(qū)的內(nèi)容提交到版本庫(kù)
git commit <file>
git commit .
git commit -a #包括git add/ git rm /git commint 這三個(gè)操作,所有一般在操作工作區(qū)的時(shí)候乘综,直接刪除了文件憎账,而不是使用git rm的,最后提交是可以用這個(gè)卡辰,如下
              #git commit -am "提交信息"
git commit -amend #修改最后一次提交的信息

#------------------------------------------

# 拋棄工作區(qū)修改(使用當(dāng)前暫存區(qū)的內(nèi)容狀態(tài)去覆蓋工作區(qū)胞皱,從而達(dá)到拋棄工作區(qū)修改的作用)
git checkout <file>  
git checkout .  

#------------------------------------------
#改變暫存區(qū)的修改(其實(shí)是重置HEAD,將指定版本庫(kù)的內(nèi)容狀態(tài)去覆蓋暫存區(qū)九妈,從而達(dá)到暫存區(qū)的改變)
git reset <file>  #從暫存區(qū)恢復(fù)到工作區(qū)(不指定版本id反砌,則默認(rèn)為最后一次提交的版本id)
git reset .  #從暫存區(qū)恢復(fù)到工作區(qū)
git reset $id # 恢復(fù)到指定的提交版本,該$id之后的版本提交都恢復(fù)到工作區(qū)
git reset --hard $id #恢復(fù)到指定的提交版本萌朱,該$id之后的版本提交全部會(huì)被拋棄宴树,將不出現(xiàn)在工作區(qū)

#注:如果不小心使用了錯(cuò)誤的HEAD重置,會(huì)發(fā)現(xiàn)HEAD指向了重置的版本id晶疼,該版本之后的版本提交都不見了酒贬,使用git log也無法找到又憨,那么怎么恢復(fù)呢?使用下面兩個(gè)命令
git reflog show master | head #會(huì)顯示所有的版本記錄
git reset --hard $id #重新重置锭吨,至于--hard蠢莺,請(qǐng)根據(jù)你時(shí)候?qū)⒏淖兊膬?nèi)容放到工作區(qū)還是直接拋棄進(jìn)行選擇

#------------------------------------------
#恢復(fù)某次提交(其實(shí)是某提提交的回滾操作,不影響其他的提交零如,所產(chǎn)生的效果創(chuàng)建一個(gè)新版本提交去回滾將指定的提交刪除躏将,包括產(chǎn)生的差異文件不會(huì)出現(xiàn)在工作區(qū),而是直接被拋棄)
git revert <$id>
git revert HEAD
#這里有一個(gè)很好的講解revert與reset的差異:git reset 是把HEAD向后移動(dòng)了一下考蕾,而git revert是HEAD繼續(xù)前進(jìn)祸憋,只是新的commit的內(nèi)容和要revert的內(nèi)容正好相反,能夠抵消要被revert的內(nèi)容肖卧。

#------------------------------------------
#刪除文件的幾種方法(貌似Git2.0后有了變化)
#第一種直接在工作區(qū)刪除
rm your_file #直接在工作區(qū)刪除文件
git add -u . #將有改動(dòng)的都提交到暫存區(qū)(包括修改的蚯窥,刪除的等操作),貌似git2.0 不加 -u 參數(shù)也可以
git commint -m "message" #提交版本庫(kù)

#第二種方法直接在工作區(qū)刪除
rm your_file #直接在工作區(qū)刪除文件
git commit -am "message" #這個(gè)在前面提過喜命,直接可以提交版本庫(kù)沟沙,-a會(huì)包括包括git add/ git rm /git commint 這三個(gè)操作

#第三種方法使用git rm
git rm <file> #不僅在工作區(qū)將文件刪除,同時(shí)將該刪除操作提交到暫存區(qū)
git commint -m "message" #提交版本庫(kù)

#關(guān)于git rm的其他補(bǔ)充
git rm --cached <file> #從暫存區(qū)中除去該文件壁榕,git將不再跟蹤該文件的變更矛紫,但仍然在工作區(qū)內(nèi),在需要.gitignore時(shí)經(jīng)常用到

文件直接比較差異Diff

git diff
git diff <file> #比較工作區(qū)與暫存區(qū)文件的差異
git diff --cached   # 比較暫存區(qū)和版本庫(kù)差異

git diff <$id1> <$id2>   # 比較兩次提交之間的差異
git diff <branch1>..<branch2> # 在兩個(gè)分支之間比較

分支

git branch -r #查看遠(yuǎn)程分支
git branch new_branch_name #新建一個(gè)分支
git branch --merged #查看已經(jīng)被合并到當(dāng)前分支的分支
git branch --no-merged #查看未被合并到當(dāng)前分支的分支

git checkout branch_name #切換分支
git checkout -b branch_name #創(chuàng)建分支并切換

git branch -d branch_name #刪除分支
git branch -D branch_name #強(qiáng)制刪除分支
git push origin :branch-name #刪除遠(yuǎn)程分支(先在本地刪除該分支)牌里,原理是把一個(gè)空分支push到server上颊咬,相當(dāng)于刪除該分支。

#從遠(yuǎn)程clone一個(gè)項(xiàng)目牡辽,雖然遠(yuǎn)程上該項(xiàng)目是有分支的喳篇,但clone下來后發(fā)現(xiàn)只有master分支,解決:
git checkout -b not_master_branch  origin/not_master_branch #本地創(chuàng)建一個(gè)分支态辛,指向?qū)?yīng)的遠(yuǎn)程分支
git pull origin not_master_branch #將遠(yuǎn)程的not_master_branch分支pull下來
git push origin not_master_branch #將修改后的not_master_branch分支push到遠(yuǎn)程的not_master_branch

Tag

git tag v1.0.0 [SHA] #打一個(gè)輕量級(jí)的tag麸澜,只是一個(gè)commit的指向引用,[SHA]是可選擇值(某個(gè)commit的SHA),指定為哪個(gè)commit打tag奏黑,如果沒寫則直接為最后一個(gè)commit打tag
git tag -a v1.0.0 -m "你的附注信息" [SHA] #一個(gè)帶附注信息的tag炊邦,不是一個(gè)簡(jiǎn)單的引用,而是單獨(dú)的一個(gè)對(duì)象熟史,[SHA]是可選擇值(某個(gè)commit的SHA)馁害,指定為哪個(gè)commit打tag,如果沒寫則直接為最后一個(gè)commit打tag
git tag #列出所有的tag
git show v1.0.0  #打印指定tag的信息
git tag -d v1.0.0 #刪除本地指定tag
git push origin :refs/tags/v1.0.0 #刪除遠(yuǎn)程tag

遠(yuǎn)程

git remote -v                    # 查看遠(yuǎn)程服務(wù)器地址和倉(cāng)庫(kù)名稱
git remote show origin           # 查看遠(yuǎn)程服務(wù)器倉(cāng)庫(kù)狀態(tài)
git remote add origin git@github:robbin/robbin_site.git         # 添加遠(yuǎn)程倉(cāng)庫(kù)地址
git remote set-url origin git@github.com:robbin/robbin #修改遠(yuǎn)程地址
git remote rm #刪除遠(yuǎn)程創(chuàng)庫(kù)地址

從遠(yuǎn)程拉取內(nèi)容,提交內(nèi)容到遠(yuǎn)程

git pull #=git fetch + git merge
git fetch #拉取
git merge #合并

git push                         # push所有分支
git push origin master           # 將本地主分支推到遠(yuǎn)程主分支
git push -u origin master        # 將本地主分支推到遠(yuǎn)程(如無遠(yuǎn)程主分支則創(chuàng)建蹂匹,用于初始化遠(yuǎn)程倉(cāng)庫(kù))
git push origin <local_branch>   # 創(chuàng)建遠(yuǎn)程分支碘菜, origin是遠(yuǎn)程倉(cāng)庫(kù)名
git push origin <local_branch>:<remote_branch>  # 創(chuàng)建遠(yuǎn)程分支
git push origin :<remote_branch>  #先刪除本地分支(git br -d <branch>),然后再push刪除遠(yuǎn)程分支

暫存管理

git stash #將工作區(qū)做的修改暫存到一個(gè)git棧中
git stash list #查看棧中所有暫存
git stash apply <暫存編號(hào)> #回復(fù)對(duì)應(yīng)編號(hào)暫存到工作區(qū),如果不指定編號(hào)為棧頂?shù)娜绦ィ⒁猓哼@些暫存還在棧中
git stash pop #將棧頂?shù)臅捍嫜鎏梗謴?fù)到工作區(qū),并從棧中彈出
git stash clear #清空暫存棧

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

git clone --bare git_url_path #clone的時(shí)候吊骤,將其創(chuàng)建成遠(yuǎn)程創(chuàng)庫(kù)
git --bare init #初始化項(xiàng)目的時(shí)候缎岗,創(chuàng)建成遠(yuǎn)程創(chuàng)庫(kù)

部分參考Robbin Fan大神的博客《Git常用命令備忘》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末静尼,一起剝皮案震驚了整個(gè)濱河市白粉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鼠渺,老刑警劉巖鸭巴,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異拦盹,居然都是意外死亡鹃祖,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門普舆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恬口,“玉大人,你說我怎么就攤上這事沼侣∽婺埽” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵蛾洛,是天一觀的道長(zhǎng)养铸。 經(jīng)常有香客問我,道長(zhǎng)轧膘,這世上最難降的妖魔是什么钞螟? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮谎碍,結(jié)果婚禮上鳞滨,老公的妹妹穿的比我還像新娘。我一直安慰自己蟆淀,他們只是感情好拯啦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著扳碍,像睡著了一般提岔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上笋敞,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天碱蒙,我揣著相機(jī)與錄音,去河邊找鬼。 笑死赛惩,一個(gè)胖子當(dāng)著我的面吹牛哀墓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播喷兼,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼篮绰,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了季惯?” 一聲冷哼從身側(cè)響起吠各,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勉抓,沒想到半個(gè)月后贾漏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡藕筋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年纵散,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隐圾。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伍掀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出暇藏,到底是詐尸還是另有隱情蜜笤,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布叨咖,位于F島的核電站瘩例,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏甸各。R本人自食惡果不足惜垛贤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望趣倾。 院中可真熱鬧聘惦,春花似錦、人聲如沸儒恋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)诫尽。三九已至禀酱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間牧嫉,已是汗流浹背剂跟。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工减途, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人曹洽。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓鳍置,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親送淆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子税产,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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

  • 本片內(nèi)容轉(zhuǎn)自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃兒閱讀 4,933評(píng)論 2 88
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,661評(píng)論 9 163
  • arguments只在函數(shù)內(nèi)部起作用,是該函數(shù)調(diào)用者傳入的所有參數(shù)偷崩。arguments是個(gè)類數(shù)組辟拷。將argumen...
    luckySnail閱讀 345評(píng)論 0 0
  • 修羅現(xiàn) 世間亂 砂中綻放出鮮血之花 染紅了砂 也染紅了修羅的雙眼 近乎瘋狂的眼瞳中 世人看到的是殺戮 眼底隱藏的 ...
    夢(mèng)少年閱讀 494評(píng)論 0 2
  • 婚姻智听,在中國(guó)成人字典里是一個(gè)“修身養(yǎng)性齊家治國(guó),平天下”渡紫,對(duì)應(yīng)的是“成家立業(yè)”的傳統(tǒng)到推。很多人不吝也不恥在現(xiàn)實(shí)...
    獨(dú)孤的行走者閱讀 414評(píng)論 1 1