GIT常用命令

GIT常用命令(小結(jié))

  • 談及源碼管理工具秉氧,首選SVNGIT,在工作中也都有所接觸蜒秤,但個(gè)人更喜歡使用GIT谬运,下面就是我記錄的在工作中用到的操作命令。

操作流程圖

Git操作流程圖.png

一垦藏、全局配置


  1. 告訴git你是誰(shuí)(設(shè)置 | 修改 用戶名)

    git config --global user.name "username"

  2. 告訴git怎么聯(lián)系你(如果注冊(cè)了 github 賬號(hào)梆暖,郵箱最好和 github 賬號(hào)統(tǒng)一)(設(shè)置 | 修改 郵箱)

    git config --global user.email "xxx@126.com"

  3. 查看用戶名和郵箱

    git config user.name

    git config user.email

二、初始化本地代碼倉(cāng)庫(kù)


  1. 初始化代碼倉(cāng)庫(kù)

    git init

    進(jìn)入新的公司掂骏,一般都需要從公司的遠(yuǎn)程代碼托管倉(cāng)庫(kù)中clone出一份代碼

  2. 從服務(wù)器分支中創(chuàng)建本地分支

    a. 加入我在本地新建了一個(gè)分支

    git checkout origin/originBranchName -b localBranchName

    b. 我在這個(gè)分支上新建了一些文件轰驳,要把這個(gè)分支推送到自己的遠(yuǎn)程分支服務(wù)器上

    git push origin localBranchName

  3. 從服務(wù)器克隆代碼(有子模塊,需要遞歸recursive)

    git clone --recursive git@git.jimubox.com:xxx/xxxxxx.git

三弟灼、修改&提交


  1. 添加修改的文件

    git add MainView.h (添加某個(gè)文件)

    git add . (添加所有已經(jīng)修改的文件)

  2. 提交修改

    git commit -m "注釋"

    git commit -a -m "注釋"

    git commit -am "注釋"

  3. 從遠(yuǎn)程分支中拉最新代碼

    git pull origin originBranchName

  4. 將本地分支代碼提交到自己的遠(yuǎn)程分支中

    git push origin localBranchName

  5. 切換到服務(wù)器遠(yuǎn)程分支上

    git checkout originBranchName

  6. 合并分支(遠(yuǎn)程分支&本地分支做個(gè)合并)

    git merge localBranchName

  7. 把最新修改同步到服務(wù)器的遠(yuǎn)程分支上

    git push origin localBranchName

  8. 切換到自己的本地分支级解,完成一次修改提交操作

    git checkout localBranchName

備注: 修改&提交時(shí),Untracked files(未監(jiān)視的文件)的處理

有時(shí)候會(huì)出現(xiàn)Untracked files田绑,我們又不想add到倉(cāng)庫(kù)勤哗,但是使用git checkout .git reset 都沒法刪除這些未監(jiān)視的文件,如下圖:

git-untracked files.png
  • 解決辦法:
    • 刪除文件:git clean -f
    • 刪除目錄: git clean -fd
  • Tips
    • 刪除前掩驱,建議加上-n參數(shù)芒划,先看看會(huì)對(duì)哪些文件產(chǎn)生影響,避免誤操作欧穴!比如:git clean -nf民逼、git clean -nfd

四、版本回撤


  1. 回撤到上一個(gè)版本

    git reset --hard HEAD^

  2. 回撤到上上一個(gè)版本

    git reset --hard HEAD^^

  3. 切換到任意版本

    git reset --hard 版本號(hào)(前6位)

  4. 撤銷某一個(gè)文件當(dāng)前的修改

    git checkout 文件名

  5. 撤銷當(dāng)前所有修改

    git checkout .

  6. 查看分支引用記錄涮帘,能夠查閱所有的版本號(hào)

    git reflog

  7. 從分支的某個(gè)提交記錄簽出新的分支

    • git checkout 版本號(hào)(前6位)
    • git branch 新的分支名【產(chǎn)生新的分支】

五拼苍、查看文件修改記錄


  1. 查看當(dāng)前分支

    git branch

  2. 查詢某人的提交記錄

    git log --author="姓名"

  3. 查看文件修改記錄(歷史) 文件追蹤,再也不怕未知的修改了调缨,呵呵

    git blame VideoSquare/HotViewController.mm

  4. 查看文件修改內(nèi)容

    git difftool VideoSquare/HotViewController.mm 新窗口彈出

    git diff VideoSquare/HotViewController.mm 原始窗口顯示

六疮鲫、分支操作


  1. 查看當(dāng)前分支

    git branch

  2. 查看遠(yuǎn)程分支

    git branch -r

  3. 創(chuàng)建本地分支(注意不會(huì)自動(dòng)切換分支

    git branch [name]

  4. 切換分支

    git checkout [name]

  5. 創(chuàng)建新分支并立即切換到新分支

    git checkout -b [name]

  6. 刪除分支

    a. 只能刪除已經(jīng)合并過的分支
    b. 沒有合并的分支不能刪除
    c. 如果要強(qiáng)行刪除分支,可以使用 -D 選項(xiàng)
    

    git branch -d [name]
    git push origin --delete <branchName> 刪除遠(yuǎn)程分支

6.1 刪除本地的無(wú)效遠(yuǎn)程分支
git remote prune origin

    // 輸出日志如下:
    Pruning origin
    URL: git@git.jimubox.com:app-labs/app-background-center.git
    * [pruned] origin/develop_new
  1. 合并分支

    git merge [name]

  2. 創(chuàng)建遠(yuǎn)程分支(本質(zhì)上是將本地的分支 push 到遠(yuǎn)程

    git push origin [name]

七弦叶、遠(yuǎn)程操作


  1. 查看當(dāng)前分支

    git clone url

  2. 將本地修改內(nèi)容推送到遠(yuǎn)程代碼倉(cāng)庫(kù)

    git push

  3. 將遠(yuǎn)程代碼庫(kù)的變化更新到本地

    git pull

八俊犯、標(biāo)簽

  1. 創(chuàng)建標(biāo)簽

    git tag 標(biāo)簽名稱

    git tag -a 標(biāo)簽名稱 -m 附注

  2. 在指定commit上打標(biāo)簽

    git tag -a 標(biāo)簽名稱 commitCode -m 附注

  3. 查看標(biāo)簽列表

    git tag

  4. 查看標(biāo)簽信息

    git show 標(biāo)簽名稱

  5. 刪除標(biāo)簽

    git tag -d 標(biāo)簽名稱

  6. 推送標(biāo)簽到遠(yuǎn)程

    git push origin 標(biāo)簽名稱

    git push origin --tags

    推送到遠(yuǎn)程的標(biāo)簽,如果想要?jiǎng)h除遠(yuǎn)程標(biāo)簽湾蔓,就得先刪除本地(git tag -d 分支名稱)瘫析,再刪除遠(yuǎn)程標(biāo)簽(git push origin :refs/tags/標(biāo)簽名稱)
    

九、其它


  1. 刪除文件

    git rm -r 文件名稱

  2. .gitignore規(guī)則不生效的解決辦法

     # 手動(dòng)修改gitignore文件,添加新的忽略規(guī)則失效的原因是贬循,.gitignore只能忽略那些原來(lái)沒有被track的文件咸包,如果某些文件已經(jīng)被納入了版本管理中,則修改.gitignore是無(wú)效的杖虾。那么解決方法就是先把本地緩存刪除(改變成未track狀態(tài))烂瘫,然后再提交:
     git rm -r --cached .
     git add .
     git commit -m 'update .gitignore'
    

十、高級(jí)用法


Git - 子模塊

十一奇适、附件


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嚷往,一起剝皮案震驚了整個(gè)濱河市葛账,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌皮仁,老刑警劉巖籍琳,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異贷祈,居然都是意外死亡趋急,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門势誊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)呜达,“玉大人,你說我怎么就攤上這事粟耻〔榻” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵勋颖,是天一觀的道長(zhǎng)嗦嗡。 經(jīng)常有香客問我,道長(zhǎng)饭玲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任叁执,我火速辦了婚禮茄厘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谈宛。我一直安慰自己次哈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布吆录。 她就那樣靜靜地躺著窑滞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哀卫,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天巨坊,我揣著相機(jī)與錄音,去河邊找鬼此改。 笑死趾撵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的共啃。 我是一名探鬼主播占调,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼移剪!你這毒婦竟也來(lái)了究珊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤纵苛,失蹤者是張志新(化名)和其女友劉穎苦银,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赶站,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡幔虏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贝椿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片想括。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖烙博,靈堂內(nèi)的尸體忽然破棺而出瑟蜈,到底是詐尸還是另有隱情,我是刑警寧澤渣窜,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布铺根,位于F島的核電站,受9級(jí)特大地震影響乔宿,放射性物質(zhì)發(fā)生泄漏位迂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一详瑞、第九天 我趴在偏房一處隱蔽的房頂上張望掂林。 院中可真熱鬧,春花似錦坝橡、人聲如沸泻帮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锣杂。三九已至脂倦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間元莫,已是汗流浹背赖阻。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留柒竞,地道東北人政供。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像朽基,于是被迫代替她去往敵國(guó)和親布隔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355