Git 操作指南

倉庫操作

新建倉庫

git init

實質(zhì):新建一個.git目錄译仗,所有g(shù)it有關(guān)的信息都在里面碧查。

克隆倉庫

git clone

查看遠程倉庫

git remote -v 

添加遠程倉庫

git remote add [name] [url]

name 通常為origin

刪除遠程倉庫

git remote rm [name]

修改遠程倉庫

git remote set-url --push [name] [newUrl]

拉取遠程倉庫

git pull [remoteName] [localBranchName]

推送遠程倉庫

git push [remoteName] [localBranchName]

本地分支操作

查看分支

git branch

創(chuàng)建分支

git branch branchName

切換分支

git checkout branchName

刪除分支

git branch -d branchName

合并分支

git checkout master
git merge dev 

文件操作

工作區(qū) 暫存區(qū) 歷史區(qū)

查看狀態(tài)

 git status

添加追蹤

git add filename
git add .

刪除文件

git rm 

移動文件

git mv file the/new/path/

重命名文件

git mv file newfile

提交修改

git commit -m 'commit log'

遠程分支操作

獲取遠程分支

git checkout -b [name] [remoteName] 

例如:

git checkout -b myNewBranch origin/dragon

git 1.6版本以后轧钓,有簡化的命令:

git checkout --track origin/[remoteName]

直接在本地檢出與遠程分支名字一致的分支趋箩。

跟蹤遠程分支

git branch --set-upstream-to=origin/<remoteBranchName> localBranchName

備注:如何查看跟蹤關(guān)系妒貌,使用如下命令

    git config --list

拉取遠程分支到本地

git pull origin remoteBranchName:localBranchName

推送本地分支到遠程

git push origin localBranchName:remoteBranchName

如果remoteBranchName遠程分支不存在钞瀑,則在遠端自動創(chuàng)建俩垃。

推送當(dāng)前分支到遠程

git push origin remoteBranchName

同理励幼,如果remoteBranchName遠程分支不存在,則在遠端自動創(chuàng)建口柳。

備注:通常我們都直接用git push苹粟,不帶后面的參數(shù)(建立好了追蹤關(guān)系)。

刪除遠程分支

git push origin :remoteBranchName

git配置文件

用戶配置文件位置

~/.gitconfig

查看配置信息

git config --list

配置用戶名和密碼

git config --global user.name gzchenquanbin
git config --global user.email gzchenquanbin@corp.netease.com

開啟顏色顯示

git config --global corlor.ui true

配置編輯器

git config --glabal core.editor emacs   #默認為vi或者vim

配置比較工具

git config --global merge.tool vimdiff

其它技巧

查看差異

git diff                               #顯示的是工作區(qū)和暫存區(qū)的差別
git diff --stat                        #只顯示差別的統(tǒng)計信息跃闹,不詳細顯示
git diff --cached/staged               #顯示的是暫存區(qū)和倉庫的差別六水,也就是下次commit的內(nèi)容
git diff HEAD                          #顯示的是工作區(qū)和倉庫的差別
git diff HEAD file                     #顯示的是工作區(qū)和倉庫指定文件(目錄)的差別
git diff commitId file                 #顯示的是工作區(qū)
git diff commitId1 commitId2           #比較兩次commit之間的差異
git diff commitId1 commitId2 file      #比較兩次commit之間某個文件的差異
git diff branch1 branch2               #比較兩個分支上的最新提交
git diff branch                        #比較當(dāng)前分支與指定分支的當(dāng)前目錄差異
git diff branch file                   #比較當(dāng)前分支與指定分支的指定文件(目錄)差異

查看提交日志

git log
git log -2   #查看最近兩次的提交日志

查看某次提交的詳細修改

git show commitId

修改撤銷

  • 只在工作區(qū)修改,還沒有add到暫存區(qū)

     git checkout -- file
    
  • 已經(jīng)add到暫存區(qū)

     git reset HEAD file
    

    備注:之前的修改被回退到工作區(qū)

  • 已經(jīng)commit到倉庫

     git reset --hard HEAD^          #回退到上一個提交
     git reset --hard HEAD^^         #回退到上上一個版本
     git reset --hard HEAD~10        #往前回退10個版本
     git reset --hard commitID       #指向任意一個提交
    
  • 已經(jīng)push到遠端

     sorry,無能為力了
    

藏匿與恢復(fù)

git stash
git stash pop 

.gitignore文件

項目中經(jīng)常會生成一些Git系統(tǒng)不需要追蹤(track)的文件辣卒。典型的是在編譯生成過程中 產(chǎn)生的文件或是編程器生成的臨時備份文件掷贾。
當(dāng)然,你不追蹤(track)這些文件荣茫,可以 平時不用"git add"去把它們加到索引中想帅。 但是這樣會很快變成一件煩人的事,你發(fā)現(xiàn) 項目中到處有未追蹤(untracked)的文件; 這樣也使"git add ." 和"git commit -a" 變得實際上沒有用處啡莉,同時"git status"命令的輸出也會有它們港准。
這時,你可以在你的頂層工作目錄中添加一個叫".gitignore"的文件咧欣,來告訴Git系統(tǒng)要忽略 掉哪些文件浅缸,下面是文件內(nèi)容的示例:

# 以'#' 開始的行,被視為注釋.
# 忽略掉所有文件名是 foo.txt 的文件.
foo.txt
# 忽略所有生成的 html 文件,
*.html
# foo.html是手工維護的魄咕,所以例外.
!foo.html
#  忽略所有.o 和 .a文件.
*.[oa]
#忽略文件夾(所有的.idea子目錄)
.idea/
# 如下的只忽略根目錄下的.idea目錄
/.idea/

.gitignore不生效怎么辦

有時候在項目開發(fā)過程中衩椒,突然心血來潮想把某些目錄或文件加入忽略規(guī)則,按照上述方法定義后發(fā)現(xiàn)并未生效,原因是.gitignore只能忽略那些原來沒有被track的文件毛萌,如果某些文件已經(jīng)被納入了版本管理中苟弛,則修改.gitignore是無效的。那么解決方法就是先把本地緩存刪除(改變成未track狀態(tài))阁将,然后再提交:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末膏秫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子做盅,更是在濱河造成了極大的恐慌缤削,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吹榴,死亡現(xiàn)場離奇詭異亭敢,居然都是意外死亡,警方通過查閱死者的電腦和手機腊尚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門吨拗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來满哪,“玉大人婿斥,你說我怎么就攤上這事∩谘迹” “怎么了民宿?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長像鸡。 經(jīng)常有香客問我活鹰,道長,這世上最難降的妖魔是什么只估? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任志群,我火速辦了婚禮,結(jié)果婚禮上蛔钙,老公的妹妹穿的比我還像新娘锌云。我一直安慰自己,他們只是感情好吁脱,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布桑涎。 她就那樣靜靜地躺著,像睡著了一般兼贡。 火紅的嫁衣襯著肌膚如雪攻冷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天遍希,我揣著相機與錄音等曼,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛涉兽,可吹牛的內(nèi)容都是我干的招驴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼枷畏,長吁一口氣:“原來是場噩夢啊……” “哼别厘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拥诡,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤触趴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后渴肉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冗懦,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年仇祭,在試婚紗的時候發(fā)現(xiàn)自己被綠了披蕉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡乌奇,死狀恐怖没讲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情礁苗,我是刑警寧澤爬凑,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站试伙,受9級特大地震影響嘁信,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜疏叨,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一潘靖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚤蔓,春花似錦卦溢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至涮坐,卻和暖如春凄贩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背袱讹。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工疲扎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留昵时,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓椒丧,卻偏偏與公主長得像壹甥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子壶熏,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

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

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,478評論 1 26
  • 記憶中那意義非同凡響的鈴聲響起的那一刻句柠,一出門,我看到夏初黃昏獨有的溫柔而明亮的光芒棒假,那是我在迄今的人生中認真看過...
    步青城閱讀 317評論 5 7
  • 這條音頻給你講講2016年宇宙的變化溯职。 我們知道,一年的時間對宇宙來說是非常短暫的帽哑,天文學(xué)上的很多事件都要以幾千...
    73feb922c323閱讀 156評論 0 0
  • 歡樂頌劇終妻枕,樊勝美終于跟王柏川分手了僻族,看到樊大姐的變化,我真的覺得要拿起小板凳鼓個半小時的掌屡谐。 在...
    黏玉米閱讀 235評論 0 0
  • 天色完全暗了下來述么,華燈已上,霓虹閃爍康嘉,街道上形形色色的人都匆匆忙忙往家里趕碉输,臉上的表情顯得疲憊不堪籽前,嘴角沒有一點的...
    九歲V閱讀 380評論 0 0