Git命令大全

git config

配置 Git 的相關(guān)參數(shù)痹届。
Git 一共有3個配置文件:
1. 倉庫級的配置文件:在倉庫的 .git/.gitconfig肥照,該配置文件只對所在的倉庫有效庄岖。
2. 全局配置文件:Mac 系統(tǒng)在 ~/.gitconfig姆怪,Windows 系統(tǒng)在 C:\Users\<用戶名>\.gitconfig
3. 系統(tǒng)級的配置文件:在 Git 的安裝目錄下(Mac 系統(tǒng)下安裝目錄在 /usr/local/git)的 etc 文件夾中的 gitconfig

# 查看配置信息
# --local:倉庫級硬猫,--global:全局級炫彩,--system:系統(tǒng)級
$ git config <--local | --global | --system> -l

# 查看當(dāng)前生效的配置信息
$ git config -l

# 編輯配置文件
# --local:倉庫級,--global:全局級斯够,--system:系統(tǒng)級
$ git config <--local | --global | --system> -e

# 添加配置項
# --local:倉庫級囚玫,--global:全局級,--system:系統(tǒng)級
$ git config <--local | --global | --system> --add <name> <value>

# 獲取配置項
$ git config <--local | --global | --system> --get <name>

# 刪除配置項
$ git config <--local | --global | --system> --unset <name>

# 配置提交記錄中的用戶信息
$ git config --global user.name <用戶名>
$ git config --global user.email <郵箱地址>

# 更改Git緩存區(qū)的大小
# 如果提交的內(nèi)容較大读规,默認(rèn)緩存較小抓督,提交會失敗
# 緩存大小單位:B,例如:524288000(500MB)
$ git config --global http.postBuffer <緩存大小>

# 調(diào)用 git status/git diff 命令時以高亮或彩色方式顯示改動狀態(tài)
$ git config --global color.ui true

# 配置可以緩存密碼束亏,默認(rèn)緩存時間15分鐘
$ git config --global credential.helper cache

# 配置密碼的緩存時間
# 緩存時間單位:秒
$ git config --global credential.helper 'cache --timeout=<緩存時間>'

# 配置長期存儲密碼
$ git config --global credential.helper store

git clone

從遠(yuǎn)程倉庫克隆一個版本庫到本地铃在。

# 默認(rèn)在當(dāng)前目錄下創(chuàng)建和版本庫名相同的文件夾并下載版本到該文件夾下
$ git clone <遠(yuǎn)程倉庫的網(wǎng)址>

# 指定本地倉庫的目錄
$ git clone <遠(yuǎn)程倉庫的網(wǎng)址> <本地目錄>

# -b 指定要克隆的分支,默認(rèn)是master分支
$ git clone <遠(yuǎn)程倉庫的網(wǎng)址> -b <分支名稱> <本地目錄>

git init

初始化項目所在目錄碍遍,初始化后會在當(dāng)前目錄下出現(xiàn)一個名為 .git 的目錄定铜。

# 初始化本地倉庫,在當(dāng)前目錄下生成 .git 文件夾
$ git init

git status

查看本地倉庫的狀態(tài)怕敬。

# 查看本地倉庫的狀態(tài)
$ git status

# 以簡短模式查看本地倉庫的狀態(tài)
# 會顯示兩列揣炕,第一列是文件的狀態(tài),第二列是對應(yīng)的文件
# 文件狀態(tài):A 新增赖捌,M 修改祝沸,D 刪除,?? 未添加到Git中
$ git status -s

git remote

操作遠(yuǎn)程庫越庇。

# 列出已經(jīng)存在的遠(yuǎn)程倉庫
$ git remote

# 列出遠(yuǎn)程倉庫的詳細(xì)信息罩锐,在別名后面列出URL地址
$ git remote -v
$ git remote --verbose

# 添加遠(yuǎn)程倉庫
$ git remote add <遠(yuǎn)程倉庫的別名> <遠(yuǎn)程倉庫的URL地址>

# 修改遠(yuǎn)程倉庫的別名
$ git remote rename <原遠(yuǎn)程倉庫的別名> <新的別名>

# 刪除指定名稱的遠(yuǎn)程倉庫
$ git remote remove <遠(yuǎn)程倉庫的別名>

# 修改遠(yuǎn)程倉庫的 URL 地址
$ git remote set-url <遠(yuǎn)程倉庫的別名> <新的遠(yuǎn)程倉庫URL地址>

git branch

操作 Git 的分支命令。

# 列出本地的所有分支卤唉,當(dāng)前所在分支以 "*" 標(biāo)出
$ git branch

# 列出本地的所有分支并顯示最后一次提交涩惑,當(dāng)前所在分支以 "*" 標(biāo)出
$ git branch -v

# 創(chuàng)建新分支,新的分支基于上一次提交建立
$ git branch <分支名>

# 修改分支名稱
# 如果不指定原分支名稱則為當(dāng)前所在分支
$ git branch -m [<原分支名稱>] <新的分支名稱>
# 強制修改分支名稱
$ git branch -M [<原分支名稱>] <新的分支名稱>

# 刪除指定的本地分支
$ git branch -d <分支名稱>

# 強制刪除指定的本地分支
$ git branch -D <分支名稱>

git checkout

檢出命令桑驱,用于創(chuàng)建竭恬、切換分支等。

# 切換到已存在的指定分支
$ git checkout <分支名稱>

# 創(chuàng)建并切換到指定的分支熬的,保留所有的提交記錄
# 等同于 "git branch" 和 "git checkout" 兩個命令合并
$ git checkout -b <分支名稱>

# 創(chuàng)建并切換到指定的分支痊硕,刪除所有的提交記錄
$ git checkout --orphan <分支名稱>

# 替換掉本地的改動,新增的文件和已經(jīng)添加到暫存區(qū)的內(nèi)容不受影響
$ git checkout <文件路徑>

git cherry-pick

把已經(jīng)提交的記錄合并到當(dāng)前分支押框。

# 把已經(jīng)提交的記錄合并到當(dāng)前分支
$ git cherry-pick <commit ID>

git add

把要提交的文件的信息添加到暫存區(qū)中岔绸。當(dāng)使用 git commit 時,將依據(jù)暫存區(qū)中的內(nèi)容來進行文件的提交。

# 把指定的文件添加到暫存區(qū)中
$ git add <文件路徑>

# 添加所有修改盒揉、已刪除的文件到暫存區(qū)中
$ git add -u [<文件路徑>]
$ git add --update [<文件路徑>]

# 添加所有修改晋被、已刪除、新增的文件到暫存區(qū)中刚盈,省略 <文件路徑> 即為當(dāng)前目錄
$ git add -A [<文件路徑>]
$ git add --all [<文件路徑>]

# 查看所有修改羡洛、已刪除但沒有提交的文件,進入一個子命令系統(tǒng)
$ git add -i [<文件路徑>]
$ git add --interactive [<文件路徑>]

git commit

將暫存區(qū)中的文件提交到本地倉庫中藕漱。

# 把暫存區(qū)中的文件提交到本地倉庫欲侮,調(diào)用文本編輯器輸入該次提交的描述信息
$ git commit

# 把暫存區(qū)中的文件提交到本地倉庫中并添加描述信息
$ git commit -m "<提交的描述信息>"

# 把所有修改、已刪除的文件提交到本地倉庫中
# 不包括未被版本庫跟蹤的文件谴分,等同于先調(diào)用了 "git add -u"
$ git commit -a -m "<提交的描述信息>"

# 修改上次提交的描述信息
$ git commit --amend

git fetch

從遠(yuǎn)程倉庫獲取最新的版本到本地的 tmp 分支上锈麸。

# 將遠(yuǎn)程倉庫所有分支的最新版本全部取回到本地
$ git fetch <遠(yuǎn)程倉庫的別名>

# 將遠(yuǎn)程倉庫指定分支的最新版本取回到本地
$ git fetch <遠(yuǎn)程主機名> <分支名>

git merge

合并分支。

# 把指定的分支合并到當(dāng)前所在的分支下
$ git merge <分支名稱>

git diff

比較版本之間的差異牺蹄。

# 比較當(dāng)前文件和暫存區(qū)中文件的差異忘伞,顯示沒有暫存起來的更改
$ git diff

# 比較暫存區(qū)中的文件和上次提交時的差異
$ git diff --cached
$ git diff --staged

# 比較當(dāng)前文件和上次提交時的差異
$ git diff HEAD

# 查看從指定的版本之后改動的內(nèi)容
$ git diff <commit ID>

# 比較兩個分支之間的差異
$ git diff <分支名稱> <分支名稱>

# 查看兩個分支分開后各自的改動內(nèi)容
$ git diff <分支名稱>...<分支名稱>

git pull

從遠(yuǎn)程倉庫獲取最新版本并合并到本地。
首先會執(zhí)行 git fetch沙兰,然后執(zhí)行 git merge氓奈,把獲取的分支的 HEAD 合并到當(dāng)前分支。

# 從遠(yuǎn)程倉庫獲取最新版本鼎天。
$ git pull

git push

把本地倉庫的提交推送到遠(yuǎn)程倉庫舀奶。

# 把本地倉庫的分支推送到遠(yuǎn)程倉庫的指定分支
$ git push <遠(yuǎn)程倉庫的別名> <本地分支名>:<遠(yuǎn)程分支名>

# 刪除指定的遠(yuǎn)程倉庫的分支
$ git push <遠(yuǎn)程倉庫的別名> :<遠(yuǎn)程分支名>
$ git push <遠(yuǎn)程倉庫的別名> --delete <遠(yuǎn)程分支名>

git log

顯示提交的記錄。

# 打印所有的提交記錄
$ git log

# 打印從第一次提交到指定的提交的記錄
$ git log <commit ID>

# 打印指定數(shù)量的最新提交的記錄
$ git log -<指定的數(shù)量>

git reset

還原提交記錄斋射。

# 重置暫存區(qū)育勺,但文件不受影響
# 相當(dāng)于將用 "git add" 命令更新到暫存區(qū)的內(nèi)容撤出暫存區(qū),可以指定文件
# 沒有指定 commit ID 則默認(rèn)為當(dāng)前 HEAD
$ git reset [<文件路徑>]
$ git reset --mixed [<文件路徑>]

# 將 HEAD 的指向改變罗岖,撤銷到指定的提交記錄涧至,文件未修改
$ git reset <commit ID>
$ git reset --mixed <commit ID>

# 將 HEAD 的指向改變,撤銷到指定的提交記錄桑包,文件未修改
# 相當(dāng)于調(diào)用 "git reset --mixed" 命令后又做了一次 "git add"
$ git reset --soft <commit ID>

# 將 HEAD 的指向改變南蓬,撤銷到指定的提交記錄,文件也修改了
$ git reset --hard <commit ID>

git revert

生成一個新的提交來撤銷某次提交哑了,此次提交之前的所有提交都會被保留赘方。

# 生成一個新的提交來撤銷某次提交
$ git revert <commit ID>

git tag

操作標(biāo)簽的命令。

# 打印所有的標(biāo)簽
$ git tag

# 添加輕量標(biāo)簽弱左,指向提交對象的引用窄陡,可以指定之前的提交記錄
$ git tag <標(biāo)簽名稱> [<commit ID>]

# 添加帶有描述信息的附注標(biāo)簽,可以指定之前的提交記錄
$ git tag -a <標(biāo)簽名稱> -m <標(biāo)簽描述信息> [<commit ID>]

# 切換到指定的標(biāo)簽
$ git checkout <標(biāo)簽名稱>

# 查看標(biāo)簽的信息
$ git show <標(biāo)簽名稱>

# 刪除指定的標(biāo)簽
$ git tag -d <標(biāo)簽名稱>

# 將指定的標(biāo)簽提交到遠(yuǎn)程倉庫
$ git push <遠(yuǎn)程倉庫的別名> <標(biāo)簽名稱>

# 將本地所有的標(biāo)簽全部提交到遠(yuǎn)程倉庫
$ git push <遠(yuǎn)程倉庫的別名> –tags

git mv

重命名文件或者文件夾拆火。

# 重命名指定的文件或者文件夾
$ git mv <源文件/文件夾> <目標(biāo)文件/文件夾>

git rm

刪除文件或者文件夾跳夭。

# 移除跟蹤指定的文件鳖悠,并從本地倉庫的文件夾中刪除
$ git rm <文件路徑>

# 移除跟蹤指定的文件夾,并從本地倉庫的文件夾中刪除
$ git rm -r <文件夾路徑>

# 移除跟蹤指定的文件优妙,在本地倉庫的文件夾中保留該文件
$ git rm --cached

Git操作場景示例

1. 刪除掉本地不存在的遠(yuǎn)程分支

多人合作開發(fā)時,如果遠(yuǎn)程的分支被其他開發(fā)刪除掉憎账,在本地執(zhí)行 git branch --all 依然會顯示該遠(yuǎn)程分支套硼,可使用下列的命令進行刪除:

# 使用 pull 命令,添加 -p 參數(shù)
$ git pull -p

# 等同于下面的命令
$ git fetch -p
$ git fetch --prune origin
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胞皱,一起剝皮案震驚了整個濱河市邪意,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌反砌,老刑警劉巖雾鬼,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宴树,居然都是意外死亡策菜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門酒贬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來又憨,“玉大人,你說我怎么就攤上這事锭吨〈垒海” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵零如,是天一觀的道長躏将。 經(jīng)常有香客問我,道長考蕾,這世上最難降的妖魔是什么祸憋? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮辕翰,結(jié)果婚禮上夺衍,老公的妹妹穿的比我還像新娘。我一直安慰自己喜命,他們只是感情好沟沙,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著壁榕,像睡著了一般矛紫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上牌里,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天颊咬,我揣著相機與錄音务甥,去河邊找鬼。 笑死喳篇,一個胖子當(dāng)著我的面吹牛敞临,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播麸澜,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼挺尿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了炊邦?” 一聲冷哼從身側(cè)響起编矾,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎馁害,沒想到半個月后窄俏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡碘菜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年凹蜈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忍啸。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡踪区,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吊骤,到底是詐尸還是另有隱情缎岗,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布白粉,位于F島的核電站传泊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鸭巴。R本人自食惡果不足惜眷细,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鹃祖。 院中可真熱鬧溪椎,春花似錦、人聲如沸恬口。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祖能。三九已至歉秫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間养铸,已是汗流浹背雁芙。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工轧膘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兔甘。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓谎碍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親洞焙。 傳聞我的和親對象是個殘疾皇子椿浓,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

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

  • 以下內(nèi)容是我在學(xué)習(xí)和研究Git時,對Git操作的特性闽晦、重點和注意事項的提取、精練和總結(jié)提岔,可以做為Git操作的字典仙蛉,...
    科研者閱讀 4,136評論 4 50
  • Add & Commit git init 初始化一個 Git 倉庫(repository),即把當(dāng)前所在目錄變成...
    冬絮閱讀 4,833評論 0 9
  • 以下內(nèi)容是我在學(xué)習(xí)和研究Git時碱蒙,對Git操作的特性荠瘪、重點和注意事項的提取、精練和總結(jié)赛惩,可以做為Git操作的字典哀墓,...
    科研者閱讀 3,528評論 2 19
  • 學(xué)員:高小涵,崔藍依依喷兼,田姍姍 時間:7月22日 任課教師:張老師 課程目標(biāo):1.設(shè)計并搭建一群球迷 2.利用齒輪...
    嘻_閱讀 377評論 0 0
  • 病拳之二:“散”篮绰,有些人把拳打散掉了,現(xiàn)象是手開季惯、步亂吠各、形散,拳意不明是其根勉抓。所以有一個好老師贾漏,能往正路上引的真太...
    彎月長虹閱讀 563評論 0 0