"廖雪峰的Git教程"學(xué)習(xí)筆記

廖雪峰的《Git教程》

Git簡介

Git的版本

git version
which git

設(shè)置Git

git config --global user.name "MiracleWong"
git config --global user.email "youremail@example.com"
git config --global color.ui auto

查看Git的設(shè)置

git config --global user.name
git config --global user.email
git config --global color.ui

初始化倉庫

cd project
git init

git init project 

查看文件狀態(tài)

git status

添加文件到版本庫

git add命令實際上就是把要提交的所有修改放到暫存區(qū)(Stage)

git add readme.txt

提交到倉庫

git commit就可以一次性把暫存區(qū)的所有修改提交到分支

git commit -m "add readme.txt??"

時光穿梭機(jī)

查看日志——提交歷史

git log
git log --pretty=oneline 
git log --pretty=oneline --abbrev-commit  顯示前6位commit-id

HEAD 表示當(dāng)前版本,上個版本HEAD芥喇,上上個版本HEAD沾鳄。

記錄命令歷史

git reflog

回退到上一個版本

git reset --hard HEAD^

查看工作區(qū)和版本庫里面最新版本的區(qū)別

git diff HEAD -- readme.txt

撤銷暫存區(qū)的內(nèi)容,重新放回工作區(qū)

git reset HEAD readme.txt

丟棄工作區(qū)的修改

git checkout -- readme.txt

刪除文件

git rm file
git commit -m "dekete file"

刪錯了文件翩隧,恢復(fù)

git checkout其實是用版本庫里的版本替換為工作區(qū)的版本

git checkout -- test.txt

遠(yuǎn)程倉庫

生成ssh key

ssh-keygen -t rsa -C "youremail@example.com"

添加遠(yuǎn)程倉庫

git remote add origin git@github.com:michaelliao/learngit.git

本地內(nèi)容推送到遠(yuǎn)程倉庫

git push -u origin master 第一次推送master分支的所有內(nèi)容
git push
git push origin master

遠(yuǎn)程倉庫克隆

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

分支管理

創(chuàng)建分支

git branch <name>

創(chuàng)建+切換分支

git checkou -b dev

列出所有分支

git branch

切換分支

git checkout master

合并某分支到當(dāng)前分支

git merge dev
git merge <name>

刪除分支

git branch -d <name>

分支合并

--bo-ff強(qiáng)制禁用Fast-Forward模式,生成一個新的commit信息,從分支歷史上可以看出分支信息

git merge --no-ff -m "merge with no-ff" dev

分支策略

master 分支應(yīng)該是非常穩(wěn)定的,僅用來發(fā)布新版本涌乳,平時不在上面干活。
干活在dev分支上

stash功能甜癞,儲存當(dāng)前工作現(xiàn)場

git stash

恢復(fù)現(xiàn)場夕晓,stash不刪除(默認(rèn))

git stash apply stash@{0}
git stash drop (刪除儲存的現(xiàn)場)

恢復(fù)現(xiàn)場,stash刪除

git stash pop

查看儲存的現(xiàn)場

git stash list

強(qiáng)行刪除分支

git branch -D <name>

顯示倉庫信息

git remote -v

推送分支

git push origin master
git push origin dev

創(chuàng)建遠(yuǎn)程分支到本地

git checkout -b dev origin/dev

建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)

git branch --set-upstream dev origin/dev

標(biāo)簽管理

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

git tag v1.0

查看所有標(biāo)簽

git tag

補(bǔ)充tag

git tag v0.9 commit-id

顯示標(biāo)簽tag信息

git show <tagname>

創(chuàng)建帶有說明的標(biāo)簽

用-a指定標(biāo)簽名悠咱,-m指定說明文字:

git tag -a v0.1 -m "version 0.1 released" commit-id

用PGP簽名標(biāo)簽

git tag -s v0.2 -m "signed version 0.2 released" commit-id

刪除標(biāo)簽

git tag -d v0.1

推送某個標(biāo)簽到遠(yuǎn)程

git push origin v1.0

一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽蒸辆、

git push origin --tags

刪除一個遠(yuǎn)程標(biāo)簽

git push origin :refs/tags/v1.0

Git服務(wù)

The world’s leading software development platform · GitHub
碼云 Gitee — 開源中國基于 Git 和 SVN 的代碼托管和協(xié)作開發(fā)平臺
Coding - 代碼托管 項目管理 WebIDE 企業(yè)服務(wù)

自定義Git

Git顯示顏色

git config --global color.ui true
git config --global color.ui auto

忽略特殊文件

  1. 忽略操作系統(tǒng)自動生成的文件,比如縮略圖等析既;
  2. 忽略編譯生成的中間文件躬贡、可執(zhí)行文件等,也就是如果一個文件是通過另一個文件自動生成的眼坏,那自動生成的文件就沒必要放進(jìn)版本庫拂玻,比如Java編譯產(chǎn)生的.class文件;
  3. 忽略你自己的帶有敏感信息的配置文件宰译,比如存放口令的配置文件檐蚜。

強(qiáng)制添加忽略文件

git add -f App.class

gitignore命令檢查

git check-ignore -v App.class

設(shè)置別名

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1' 顯示最后一次提交的信息
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

配置文件

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git@github.com:michaelliao/learngit.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

參考資料

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市沿侈,隨后出現(xiàn)的幾起案子闯第,更是在濱河造成了極大的恐慌,老刑警劉巖缀拭,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咳短,死亡現(xiàn)場離奇詭異肃廓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)诲泌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門盲赊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人敷扫,你說我怎么就攤上這事哀蘑。” “怎么了葵第?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵绘迁,是天一觀的道長。 經(jīng)常有香客問我卒密,道長缀台,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任哮奇,我火速辦了婚禮膛腐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鼎俘。我一直安慰自己哲身,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布贸伐。 她就那樣靜靜地躺著勘天,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捉邢。 梳的紋絲不亂的頭發(fā)上脯丝,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機(jī)與錄音伏伐,去河邊找鬼宠进。 笑死,一個胖子當(dāng)著我的面吹牛秘案,可吹牛的內(nèi)容都是我干的砰苍。 我是一名探鬼主播潦匈,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼阱高,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了茬缩?” 一聲冷哼從身側(cè)響起赤惊,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凰锡,沒想到半個月后未舟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體圈暗,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年裕膀,在試婚紗的時候發(fā)現(xiàn)自己被綠了员串。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡昼扛,死狀恐怖寸齐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抄谐,我是刑警寧澤渺鹦,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蛹含,受9級特大地震影響毅厚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜浦箱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一吸耿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酷窥,春花似錦珍语、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拳氢,卻和暖如春募逞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背馋评。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工放接, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人留特。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓纠脾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蜕青。 傳聞我的和親對象是個殘疾皇子苟蹈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

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

  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/。)是一個開源的分布式版本控制系統(tǒng)右核,...
    君惜丶閱讀 3,523評論 0 13
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,661評論 9 163
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git慧脱,從https:/...
    落魂灬閱讀 12,664評論 4 54
  • 為什么秋天這么美 因為連輕掃落葉的聲音也那么干脆 為什么秋天這么美 因為即使悲傷惆悵 也躲不開花桂的撫慰 為什么秋...
    靖安moondy閱讀 432評論 0 4
  • 總有你喜歡的時候菱鸥,時候調(diào)皮地不喜歡你宗兼。 一覺過去,天就亮了吧氮采,太陽穿過清風(fēng)殷绍,不冷不熱,一切都是剛剛好鹊漠。 故事篡帕,...
    何以和南方閱讀 286評論 17 1