Git配置
Git最小配置
- 配置全局賬戶,該賬戶對(duì)所有Git倉(cāng)庫(kù)都有效
git config --global user.name '賬戶名稱'
git config --global user.email 'Email地址'
- 配置局部賬戶咖驮,該賬戶對(duì)當(dāng)前Git倉(cāng)庫(kù)有效
git config --local user.name '賬戶名稱'
git config --local user.email 'Email地址'
查看相關(guān)配置
git config --global --list
- 查看某個(gè)倉(cāng)庫(kù)下的配置情況
git config --local --list
本地基本操作
基本操作
git status
git branch -v
git checkout 指定分支名稱
- 把當(dāng)前目錄及其子目錄下所有變更都加入到暫存區(qū)
git add .
- 把倉(cāng)庫(kù)內(nèi)所有變更都加入到暫存區(qū)
git add -A
git add 文件1 文件2 ...
- 創(chuàng)建commit,提交當(dāng)前數(shù)據(jù)
git commit
比較差異
git diff 某文件
git diff --cache 某文件
git diff
git diff --cache
暫存區(qū)與工作區(qū)之間回滾
- 把工作區(qū)指定文件恢復(fù)成和暫存區(qū)一樣
git checkout 文件1 文件2 ...
- 把暫存區(qū)指定文件恢復(fù)和HEAD一樣
git reset 文件1 文件2 ...
- 把暫存區(qū)和工作區(qū)所有文件恢復(fù)成和HEAD一樣
git reset --hard
- 用difftool比較任意兩個(gè)commit的差異
git difftool commit1 commit2
其他
git ls-files --others
臨時(shí)任務(wù)處理
git stash
- 臨時(shí)任務(wù)處理完后橙依,繼續(xù)之前的工作
git stash pop # 把之前任務(wù)彈出
或者
git stash apply # 從棧頂把任務(wù)取出
git stash list
git stash pop stash @{數(shù)字}
修改分支歷史
git add
git commit --amend
git rebase -i (commit的id)
git add
git rebase --contiue
查看變更日志
- 當(dāng)前分支各個(gè)commit用一行顯示
git log --online
git log -n
git log --online --graph --all
git log 某文件
- 某文件各行最后修改對(duì)應(yīng)的commit以及作者
git blame 某文件
分支和標(biāo)簽
創(chuàng)建新分支
- 基于當(dāng)前分支創(chuàng)建新分支
git branch 新分支
git branch 新分支 已有分支
- 基于某個(gè)commit創(chuàng)建分支
git branch 新分支 某個(gè)commit的id
git chechout -b 新分支
列出分支
git branch -v
git branch -av
git branch -rv
- 列出名稱符號(hào)某樣式的遠(yuǎn)端分支
git branch -rv -l '某樣式'
刪除分支
git branch -d 要?jiǎng)h除的分支
git branch -D 要?jiǎng)h除的分支
git branch --merged master | grep -v '^\*\ | master ' | xargs -n 1 git branch -d
-
刪除遠(yuǎn)端origin已不存在的所有本地分支
git remote prune origin
打標(biāo)簽
git tag 標(biāo)簽名 (commit的id)
兩分支之間的集合
- 把A分支合入到當(dāng)前分支孽鸡,且為merge創(chuàng)建commit
git merge A分支
- 把A分支合入到B分支淳蔼,且為Merge創(chuàng)建commit
git merge A分支 B分支
- 把當(dāng)前分支基于B分支做rebase,以便把B分支合入到當(dāng)前分支
git rebase B分支
- 把A分支基于B分支做rebase,以便把B分支合入到A分支
git rebase B分支 A分支
git mergetool
遠(yuǎn)端交互
git remote -v
git remote add url地址
git remote remove (remote的名稱)
git remote rename 舊名稱 新名稱
- 把遠(yuǎn)端所有分支和標(biāo)簽的變更都拉到本地
git fetch remote
- 把遠(yuǎn)端分支的變更拉到本地,且 merge到本地分支
git pull remote名稱 分支名
git push remote名稱 分支名
git push remote --delete 遠(yuǎn)端分支名
或者
git push remote:遠(yuǎn)端分支名
git push remote 標(biāo)簽名
git push remote --tags