【Git筆記】Git常用命令

常用

關(guān)于Git配置

# 查看當(dāng)前git環(huán)境詳細(xì)配置
git config -l
# 查看系統(tǒng)config 配置文件在git安裝目錄/etc/gitconfig
git config --system --list
# 查看當(dāng)前用戶配置 配置文件在~/.gitconfig
git config --global --list
# 配置文件在當(dāng)前項目的/.git/config
git config --local --list
# 查看所有的配置以及它們所在的文件
git config --list --show-origin
# 查看當(dāng)前分支(詳細(xì))
git config --lis
git config [--local][--global][--system] section.key value
# 設(shè)置全局名稱
git config --global user.name "Your Name"
# 設(shè)置全局郵箱
git config --global user.email "email@example.com"
# 設(shè)置當(dāng)前項目的用戶名
git config --local user.name xxxx 
#  配置當(dāng)前用戶的編碼項梭冠,可以解決中文編碼問題
git config --global core.quotepath false
#  配置當(dāng)前項目不忽略文件大小寫控漠,git默認(rèn)忽略文件名的大小寫,這點(diǎn)值得注意
git config --local core.ignorecase false 
# 設(shè)置git默認(rèn)文本編輯器(啟動路徑文本)
git config --global core.editor "[path]"
# 設(shè)置git默認(rèn)文本編輯器(某個內(nèi)置編輯器)
git config --global core.editor emacs\vim

Git初始化與克隆

# 在當(dāng)前目錄新建一個倉庫
git init
# 在一個目錄下新建本地倉庫
git init [project-name] 
# 克隆一個遠(yuǎn)程倉庫
git clone [url]
# 克隆一個遠(yuǎn)程倉庫到某個目錄
git clone [url] [dir-name]

添加到暫存區(qū)修改與提交

# 查看狀態(tài)
git status
# 查看變更內(nèi)容
git diff
# 從工作區(qū)添加指定文件到暫存區(qū)
git add [file-name1] [file-name2] ...
# 添加指定目錄到暫存區(qū)偶翅,包括子目錄
git add [directory]
# 將工作區(qū)的被修改的文件和新增的文件提交到暫存區(qū)倒堕,不包括被刪除的文件
git add .
# u指update爆价,將工作區(qū)的被修改的文件和被刪除的文件提交到暫存區(qū)铭段,不包括新增的文件
git add -u .
# A指all,將工作區(qū)被修改憔披、被刪除爸吮、新增的文件都提交到暫存區(qū)
git add -A .
# 文件改名
git mv [oldname] [newname]
# 刪除文件
git rm [file]
# 停止跟蹤文件單不刪除
git rm --cached [file]
# 遞歸刪除
git rm -r *  
# 提交
git commit -m 'xxx'        
# 修改commit信息 本次
git commit --amend
# 合并上一次提交(用于反復(fù)修改)
git commit --amend -m 'xxx'
 # 將add和commit合為一步
git commit -am 'xxx'            

查看提交歷史

# 查看提交歷史
git log
# 顯示x行日志 -x為x行
git log -[number]
# 查看指定文件的提交歷史
git log -p [file]
# 以列表的方式查看指定文件的提交歷史
git blame [file]
# 顯示提交日志及相關(guān)變動文件
git log --stat

撤銷

# 撤銷工作目錄中所有未提交文件的修改內(nèi)容
git reset --hard HEAD
# 撤銷置頂?shù)奈刺峤晃募男薷膬?nèi)容
git checkout HEAD [file]
# 撤銷指定的提交
git revert [commit]

比對

# 顯示所有未添加至index的變更
git diff
# 顯示所有已添加index但還未commit的變更
git diff --cached
# 比較與上一個版本的差異
git diff HEAD^
# 比較與HEAD版本lib目錄的差異
git diff HEAD -- ./lib
 # 比較遠(yuǎn)程分支master上有本地分支master上沒有的
git diff origin/master..master 
 # 只顯示差異的文件锰霜,不顯示具體內(nèi)容
git diff origin/master..master --stat

遠(yuǎn)程庫

# 查看項目遠(yuǎn)程倉庫
git remote -v
# 添加遠(yuǎn)程倉庫地址
git remote add origin [url]
# 刪除遠(yuǎn)程倉庫源
git remote remove origin 
# 獲取所有遠(yuǎn)程分支(不更新本地分支癣缅,另需merge)
git fetch
# 獲取所有原創(chuàng)分支并清除服務(wù)器上已刪掉的分支
git fetch --prune
# 列出所有本地標(biāo)簽
git tag
# 基于最新提交常見標(biāo)簽
git tag [tagname]
# 刪除標(biāo)簽
git tag -d [tagname]
# -a : 理解為 annotated 的首字符友存,表示 附注標(biāo)簽
# -m : 指定附注信息
git tag -a [tagname] -m xxxxxx
git tag -a [tagname] [version] -m xxxxx
# 推送標(biāo)簽至遠(yuǎn)程服務(wù)器
git push origin tag [tagname]

分支

# 顯示本地分支
git branch
# 顯示包含提交50089的分支
git branch --contains [name]
# 顯示所有分支
git branch -a
# 刪除本地新建分支
git branch -d [name]
# 顯示所有原創(chuàng)分支
git branch -r 
# 顯示所有已合并到當(dāng)前分支的分支
git branch --merged
# 顯示所有未合并到當(dāng)前分支的分支
git branch --no-merged 
# 本地分支改名
git branch -m [old] [new]  
# 從當(dāng)前分支創(chuàng)建新分支并檢出
git checkout -b [name]
# 從當(dāng)前分支創(chuàng)建新分支并檢出
git checkout -b [old] [new]
 # 檢出已存在的分支
git checkout [name]          
# 檢出遠(yuǎn)程分支并創(chuàng)建本地跟蹤分支
git checkout --track [name]
# 檢出版本
git checkout v2.0
# 從遠(yuǎn)程分支develop創(chuàng)建新本地分支devel并檢出
git checkout -b devel origin/develop 
# 檢出head版本的README文件(可用于修改錯誤回退)
git checkout -- README 
# 合并遠(yuǎn)程master分支至當(dāng)前分支
git merge [name]
# 合并提交的修改
git cherry-pick [name]
# 將當(dāng)前分支push到遠(yuǎn)程master分支
git push origin [name]    
# 把所有tag推送到遠(yuǎn)程倉庫
git push --tags
  # 刪除分支(本分支修改已合并到其他分支)
git branch -d [name] 
# 強(qiáng)制刪除分支
git branch -D [name]

推送/拉取

git pull 
# git允許拉取不關(guān)聯(lián)的歷史代碼
git pull origin xxxx --allow-unrelated-histories
# git允許推送不關(guān)聯(lián)的歷史代碼
git push origin xxxx --allow-unrelated-histories

Log 美化

git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

查看個人代碼量

[email] 替換成你的提交與郵箱

git log --author="[email]" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -;

查看整個項目代碼量

git log  --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }';
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市搀军,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吟策,老刑警劉巖檩坚,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拖叙,居然都是意外死亡赂乐,警方通過查閱死者的電腦和手機(jī)挨措,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門浅役,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人惧盹,你說我怎么就攤上這事瞪讼。” “怎么了嫡霞?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長狡汉。 經(jīng)常有香客問我盾戴,道長兵多,這世上最難降的妖魔是什么橄仆? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮畏梆,結(jié)果婚禮上您宪,老公的妹妹穿的比我還像新娘。我一直安慰自己奠涌,他們只是感情好宪巨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著溜畅,像睡著了一般捏卓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上慈格,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天怠晴,我揣著相機(jī)與錄音,去河邊找鬼峦椰。 笑死龄寞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的汤功。 我是一名探鬼主播物邑,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了忿族?” 一聲冷哼從身側(cè)響起错英,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎献雅,沒想到半個月后挺身,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年丽旅,在試婚紗的時候發(fā)現(xiàn)自己被綠了邪狞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖吁津,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情典尾,我是刑警寧澤急黎,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布匠抗,位于F島的核電站绳军,受9級特大地震影響门驾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜竣灌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一屯烦、第九天 我趴在偏房一處隱蔽的房頂上張望甸箱。 院中可真熱鬧芍殖,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽象迎。三九已至,卻和暖如春汪厨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背要拂。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工拉一, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嫡纠。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓者蠕,卻偏偏與公主長得像粪小,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子玉转,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

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