綜合 Git 知識總結(jié)

  1. 設(shè)置全局信息 git config --global
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
  • --global 參數(shù)代表機(jī)器上所有的 Git 倉庫都使用這個(gè)配置
    會(huì)保存到
C:\Users\Classichu\.gitconfig

文件里

[user]
    name = louisgeek
    email = louisgeek@qq.com
[core]
    quotepath = false
[gui]
    encoding = utf-8
[i18n "commit"]
    encoding = utf-8
[i18n]
    logoutputencoding = utf-8
[http]
    postBuffer = 524288000

2.查看當(dāng)前全局配置 git config

3.創(chuàng)建版本庫 git init

Administrator@LouisGeek MINGW64 /d/LouisGit
$ mkdir hello_git  //創(chuàng)建目錄文件

Administrator@LouisGeek MINGW64 /d/LouisGit
$ cd hello_git      //切換目錄文件

Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git
$ pwd
/d/LouisGit/hello_git  //查看目錄路徑

Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git
$  git init   //初始化當(dāng)前目錄為版本庫
Initialized empty Git repository in D:/LouisGit/hello_git/.git/

4.添加文件 git add

Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$ git add hello.txt   // git add . 添加所有文件

5.提交文件 git commit

$ git commit -m "add hello"
[master (root-commit) 36a3976] add hello
 1 file changed, 2 insertions(+)
 create mode 100644 hello.txt

6.查看狀態(tài) git status

Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   hello.txt

no changes added to commit (use "git add" and/or "git commit -a")

7.查看不同 git diff

Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$ git diff

git diff HEAD -- hello.txt  //命令查看工作區(qū)和版本庫最新版本區(qū)別

8.查看提交的日志記錄 git log

Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$  git log
commit 36a397685948c3067a7c0131b188ae02968d1a91
Author: louisgeek <louisgeek@aliyun.com>
Date:   Fri Feb 10 23:33:11 2017 +0800

    add hello

簡潔查看日志 git log --pretty=oneline

Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$  git log --pretty=oneline
36a397685948c3067a7c0131b188ae02968d1a91 add hello

9.回退到之前的版本 git reset

在 Git 中酸茴,用 HEAD 表示當(dāng)前版本鸵贬,也就是最新的提交,上一個(gè)版本就是HEAD渐行,上上一個(gè)版本就是HEAD^,當(dāng)然往上 100 個(gè)版本寫 100 個(gè)^比較容易數(shù)不過來袖牙,所以寫成 HEAD~100

$ git reset --hard HEAD^ //上一個(gè)版本

$ git reset --hard 3628164  //制定版本編號的那個(gè)版本

查看文件內(nèi)容 cat

Administrator@LouisGeek MINGW64 /d/LouisGit/hello_git (master)
$  cat hello.txt
Git is a distributed version control system.
Git is free software.

10.記錄你的每一次命令

$ git reflog

11.撤銷修改

場景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容,想直接丟棄工作區(qū)的修改時(shí),用命令

 git checkout --hello.txt

場景2:當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容悯恍,還添加到了暫存區(qū)時(shí),想丟棄修改伙狐,分兩步涮毫,第一步用命令

git reset HEAD hello.txt

就回到了場景 1,第二步按場景 1 操作贷屎。

場景3:已經(jīng)提交了不合適的修改到版本庫時(shí)罢防,想要撤銷本次提交,參考【回退到之前的版本】

12.刪除文件 rm

rm hello.txt

13.關(guān)聯(lián)遠(yuǎn)程庫 git remote add

git remote add origin git@github.com:xxx/xxx.git

14.內(nèi)容推送到遠(yuǎn)程 git push

git push -u origin master  //把分支 master 推送到遠(yuǎn)
//加上了-u參數(shù)豫尽,Git 不但會(huì)把本地的 master 分支內(nèi)容推送的遠(yuǎn)程新的 master 分支篙梢,還會(huì)把本地的 master 分支和遠(yuǎn)程的 master 分支關(guān)聯(lián)起來,在以后的推送或者拉取時(shí)就可以簡化命令美旧。

git push origin master //把本地master分支的最新修改推送

刪除關(guān)聯(lián)

git remote rm origin

15.克隆遠(yuǎn)程版本

git clone git@github.com:michaelliao/gitskills.git

16.創(chuàng)建分支 git checkout -b

git checkout -b dev
//-b參數(shù)表示創(chuàng)建并切換渤滞,相當(dāng)于以下兩條命令:
$ git branch dev
$ git checkout dev

17.查看分支信息 git branch

git branch

18.切換分支 git checkout

git checkout master

19.合并分支 git merge

git merge dev //把dev的分支內(nèi)容合并到master上

//Fast-forward信息,Git 告訴我們榴嗅,這次合并是“快進(jìn)模式”妄呕,也就是直接把 master 指向 dev 的當(dāng)前提交坦报,所以合并速度非巢缶粒快。


20.刪除分支 git branch -d

git branch -d dev

21.查看分支圖

git log --graph命令可以看到分支合并圖

22.合并分支時(shí)澳眷,加上--no-ff參數(shù)就可以用普通模式合并唠粥,合并后的歷史有分支疏魏,能看出來曾經(jīng)做過合并,而 fast forward 合并就看不出來曾經(jīng)做過合并晤愧。

準(zhǔn)備合并 dev 分支大莫,請注意--no-ff參數(shù),表示禁用 Fast forward

22.保存工作現(xiàn)場

git stash

23.查看保存的工作現(xiàn)場

git stash list

24.恢復(fù)工作現(xiàn)場

 git stash pop
 
 相當(dāng)于下面兩個(gè)命令
 用git stash apply恢復(fù)官份,但是恢復(fù)后只厘,stash 內(nèi)容并不刪除,
 需要用git stash drop來刪除
 
 可以多次 stash舅巷,恢復(fù)的時(shí)候羔味,先用git stash list查看,然后恢復(fù)指定的 stash钠右,用命令:
  git stash apply stash@{0}

25.強(qiáng)制刪除分支

git branch -D feature-vulcan

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

git remote

git remote -v  //顯示更詳細(xì)的信息

27.創(chuàng)建遠(yuǎn)程分支

創(chuàng)建遠(yuǎn)程 origin 的 dev 分支到本地赋元,于是他用這個(gè)命令創(chuàng)建本地 dev 分支:

$ git checkout -b dev origin/dev

28.指定本地 dev 分支與遠(yuǎn)程 origin/dev 分支的鏈接,根據(jù)提示,設(shè)置 dev 和 origin/dev 的鏈接

$ git branch --set-upstream dev origin/dev

29.打標(biāo)簽

git tag <name> //就可以打一個(gè)新標(biāo)簽

$ git tag v0.9 6224937 //打標(biāo)簽到指定版本

git tag -a v0.1 -m "version 0.1 released" 3628164
// -a指定標(biāo)簽名们陆,-m指定說明文字

30.查看標(biāo)簽

git tag

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

git show v0.9

32.刪除標(biāo)簽

git tag -d v0.1

33.遠(yuǎn)程標(biāo)簽

命令git push origin <tagname>可以推送本地標(biāo)簽寒瓦;

命令git push origin --tags可以推送全部未推送過的本地標(biāo)簽;

命令git tag -d <tagname>可以刪除本地標(biāo)簽坪仇;

命令git push origin :refs/tags/<tagname>可以刪除遠(yuǎn)程標(biāo)簽

34.配置git

讓 Git 顯示顏色杂腰,會(huì)讓命令輸出看起來更醒目:

$ git config --global color.ui true

35.生成公鑰

$ ssh-keygen -t rsa -C "louisgeek@qq.com" //創(chuàng)建ssh

36.對終端顯示的配置,給文字添加顏色椅文,更易于閱讀

git config --global color.diff auto  
git config --global color.status auto  
git config --global color.branch auto

37.亂碼設(shè)置(其他方案:http://www.cnblogs.com/wangkongming/p/3821305.html

$ git config --global core.quotepath false          # 顯示 status 編碼
$ git config --global gui.encoding utf-8            # 圖形界面編碼
$ git config --global i18n.commit.encoding utf-8    # 提交信息編碼
$ git config --global i18n.logoutputencoding utf-8  # 輸出 log 編碼
$ export LESSCHARSET=utf-8  # 最后一條命令是因?yàn)?git log 默認(rèn)使用 less 分頁喂很,所以需要 bash 對 less 命令進(jìn)行 utf-8 編碼

附常用命令

Git 全局設(shè)置:
git config --global user.name "louisgeek"
git config --global user.email "louisgeek@qq.com"


創(chuàng)建 git 倉庫:
mkdir test
cd test
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://git.oschina.net/louisgeek/test.git
git push -u origin master


已有項(xiàng)目?
cd existing_git_repo
git remote add origin https://git.oschina.net/louisgeek/test.git
git push -u origin master

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市皆刺,隨后出現(xiàn)的幾起案子少辣,更是在濱河造成了極大的恐慌,老刑警劉巖羡蛾,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漓帅,死亡現(xiàn)場離奇詭異,居然都是意外死亡痴怨,警方通過查閱死者的電腦和手機(jī)忙干,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浪藻,“玉大人捐迫,你說我怎么就攤上這事“” “怎么了施戴?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長萌丈。 經(jīng)常有香客問我赞哗,道長,這世上最難降的妖魔是什么辆雾? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任懈玻,我火速辦了婚禮,結(jié)果婚禮上乾颁,老公的妹妹穿的比我還像新娘。我一直安慰自己艺栈,他們只是感情好英岭,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著湿右,像睡著了一般诅妹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天吭狡,我揣著相機(jī)與錄音尖殃,去河邊找鬼。 笑死划煮,一個(gè)胖子當(dāng)著我的面吹牛送丰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弛秋,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼器躏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蟹略?” 一聲冷哼從身側(cè)響起登失,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挖炬,沒想到半個(gè)月后揽浙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡意敛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年馅巷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片空闲。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡令杈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碴倾,到底是詐尸還是另有隱情逗噩,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布跌榔,位于F島的核電站异雁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏僧须。R本人自食惡果不足惜纲刀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望担平。 院中可真熱鬧示绊,春花似錦、人聲如沸暂论。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽取胎。三九已至展哭,卻和暖如春湃窍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背匪傍。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工您市, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人役衡。 一個(gè)月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓茵休,卻偏偏與公主長得像,于是被迫代替她去往敵國和親映挂。 傳聞我的和親對象是個(gè)殘疾皇子泽篮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348

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

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,645評論 9 163
  • 一大早到二樓上廁所這里的廁所寬敞舒服可是,媽蛋柑船,居然有人再聽帽撑,咦,沒人啊猶豫著鞍时,踹開門嘿亏拉,真沒人哦,是邪風(fēng)關(guān)上了門...
    lekli閱讀 441評論 4 7
  • “青霞逆巍,你相信命嗎及塘?” “命里注定你要承受劫難嗎?命里注定我們要相愛無法相守嗎锐极?” “這種命笙僚,我不信×樵伲” 青霞替紫...
  • 大一馬上結(jié)束了 我有點(diǎn)后悔上大學(xué) 我覺得我在虛度光陰…… 因?yàn)槲彝媪税雮€(gè)月了! 因?yàn)榭荚嚨脑?我不得不停下我喜歡...
    語千閱讀 313評論 0 1