"廖雪峰的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??"

時光穿梭機

查看日志——提交歷史

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

遠程倉庫

生成ssh key

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

添加遠程倉庫

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

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

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

遠程倉庫克隆

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強制禁用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不刪除(默認)

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

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

git stash pop

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

git stash list

強行刪除分支

git branch -D <name>

顯示倉庫信息

git remote -v

推送分支

git push origin master
git push origin dev

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

git checkout -b dev origin/dev

建立本地分支和遠程分支的關(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

補充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)簽到遠程

git push origin v1.0

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

git push origin --tags

刪除一個遠程標(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í)行文件等,也就是如果一個文件是通過另一個文件自動生成的,那自動生成的文件就沒必要放進版本庫,比如Java編譯產(chǎn)生的.class文件;
  3. 忽略你自己的帶有敏感信息的配置文件,比如存放口令的配置文件。

強制添加忽略文件

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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容