# 第一次初始化(方式1):
git init
git add .
git commit -m 'first commit'
git remote add origin git@github.com:帳號名/倉庫名.git
git pull origin master
git push origin master # -f 強(qiáng)推
# 第一次初始化(方式2):
git clone git@github.com:git帳號名/倉庫名.git
# 平時(shí)工作基本操作:
git checkout master # 切到主分支
git fetch origin? # 獲取最新變更
git checkout -b dev origin/master # 基于主分支創(chuàng)建dev分支
git add . # 添加到緩存
git commit -m 'xxx' # 提交到本地倉庫
git fetch origin # 獲取最新變更
git rebase dev origin/master # 合并到主分支
git push origin dev # 推送到遠(yuǎn)程分支git chekout master # 切到主分支git merge dev # 合并開發(fā)分支git clone -b 遠(yuǎn)程分支 倉庫地址 # 本地不存在倉庫 拉取遠(yuǎn)程分支代碼git checkout -b 遠(yuǎn)程分支 origin/遠(yuǎn)程分支 # 本地存在倉庫,拉取遠(yuǎn)程分支
# 初始化倉庫
git init
# 查看倉庫當(dāng)前狀態(tài)
git status
# 將文件添加到倉庫
git add 文件名 # 將工作區(qū)的某個文件添加到暫存區(qū)?
git add . # 將當(dāng)前工作區(qū)的所有文件都加入暫存區(qū)
git add -u # 添加所有被tracked文件中被修改或刪除的文件信息到暫存區(qū),不處理untracked的文件
git add -A # 添加所有被tracked文件中被修改或刪除的文件信息到暫存區(qū)轴踱,包括untracked的文件
git add -i # 進(jìn)入交互界面模式乎完,按需添加文件到緩存區(qū)
# 將暫存區(qū)文件提交到本地倉庫
git commit -m "提交說明" # 將暫存區(qū)內(nèi)容提交到本地倉庫
git commit -a -m "提交說明" # 跳過緩存區(qū)操作瞒瘸,直接把工作區(qū)內(nèi)容提交到本地倉庫
# 比較文件異同
git diff # 工作區(qū)與暫存區(qū)的差異
git diff 分支名 #工作區(qū)與某分支的差異,遠(yuǎn)程分支這樣寫:remotes/origin/分支名
git diff HEAD? # 工作區(qū)與HEAD指針指向的內(nèi)容差異
git diff 提交id 文件路徑 # 工作區(qū)某文件當(dāng)前版本與歷史版本的差異
git diff --stage # 工作區(qū)文件與上次提交的差異(1.6 版本前用 --cached)
git diff 版本TAG # 查看從某個版本后都改動內(nèi)容
git diff 分支A 分支B # 比較從分支A和分支B的差異(也支持比較兩個TAG)
git diff 分支A...分支B # 比較兩分支在分開后各自的改動
# 另外:如果只想統(tǒng)計(jì)哪些文件被改動,多少行被改動,可以添加 --stat 參數(shù)
# 查看歷史記錄
git log # 查看所有commit記錄(SHA-A校驗(yàn)和离福,作者名稱,郵箱炼蛤,提交時(shí)間妖爷,提交說明)
git log -p -次數(shù) # 查看最近多少次的提交記錄
git log --stat # 簡略顯示每次提交的內(nèi)容更改
git log --name-only # 僅顯示已修改的文件清單
git log --name-status # 顯示新增,修改理朋,刪除的文件清單
git log --oneline # 讓提交記錄以精簡的一行輸出
git log –graph –all --online # 圖形展示分支的合并歷史
git log --author=作者? # 查詢作者的提交記錄(和grep同時(shí)使用要加一個--all--match參數(shù))
git log --grep=過濾信息 # 列出提交信息中包含過濾信息的提交記錄
git log -S查詢內(nèi)容 # 和--grep類似絮识,S和查詢內(nèi)容間沒有空格
git log fileName # 查看某文件的修改記錄,找背鍋專用
# 代碼回滾
git reset HEAD^ # 恢復(fù)成上次提交的版本
git reset HEAD^^ # 恢復(fù)成上上次提交的版本暗挑,就是多個^笋除,以此類推或用~次數(shù)
git reflog
git reset --hard 版本號
--soft:只是改變HEAD指針指向斜友,緩存區(qū)和工作區(qū)不變炸裆;
--mixed:修改HEAD指針指向,暫存區(qū)內(nèi)容丟失鲜屏,工作區(qū)不變烹看;
--hard:修改HEAD指針指向,暫存區(qū)內(nèi)容丟失洛史,工作區(qū)恢復(fù)以前狀態(tài)惯殊;
# 同步遠(yuǎn)程倉庫
git push -u origin master
# 刪除版本庫文件
git rm 文件名
# 版本庫里的版本替換工作區(qū)的版本
git checkout -- test.txt
# 本地倉庫內(nèi)容推送到遠(yuǎn)程倉庫
git remote add origin git@github.com:帳號名/倉庫名.git
# 從遠(yuǎn)程倉庫克隆項(xiàng)目到本地
git clone git@github.com:git帳號名/倉庫名.git
# 創(chuàng)建分支
git checkout -b dev
-b表示創(chuàng)建并切換分支
上面一條命令相當(dāng)于一面的二條:
git branch dev //創(chuàng)建分支
git checkout dev //切換分支
# 查看分支
git branch
# 合并分支
git merge dev? #用于合并指定分支到當(dāng)前分支
git merge --no-ff -m "merge with no-ff" dev? #加上--no-ff參數(shù)就可以用普通模式合并,合并后的歷史有分支也殖,能看出來曾經(jīng)做過合并
# 刪除分支
git branch -d dev
# 查看分支合并圖
git log --graph --pretty=oneline --abbrev-commit
# 查看遠(yuǎn)程庫信息
git remote
# git相關(guān)配置
# 安裝完Git后第一件要做的事土思,設(shè)置用戶信息(global可換成local在單獨(dú)項(xiàng)目生效):
git config --global user.name "用戶名" # 設(shè)置用戶名
git config --global user.email "用戶郵箱"? #設(shè)置郵箱
git config --global user.name? # 查看用戶名是否配置成功
git config --global user.email? # 查看郵箱是否配置
# 其他查看配置相關(guān)
git config --global --list? # 查看全局設(shè)置相關(guān)參數(shù)列表
git config --local --list # 查看本地設(shè)置相關(guān)參數(shù)列表
git config --system --list # 查看系統(tǒng)配置參數(shù)列表
git config --list? # 查看所有Git的配置(全局+本地+系統(tǒng))
git config --global color.ui true //顯示git相關(guān)顏色
# 撤消某次提交
git revert HEAD # 撤銷最近的一個提交
git revert 版本號 # 撤銷某次commit
# 拉取遠(yuǎn)程分支到本地倉庫
git checkout -b 本地分支 遠(yuǎn)程分支 # 會在本地新建分支务热,并自動切換到該分支
git fetch origin 遠(yuǎn)程分支:本地分支 # 會在本地新建分支,但不會自動切換己儒,還需checkout
git branch --set-upstream 本地分支 遠(yuǎn)程分支 # 建立本地分支與遠(yuǎn)程分支的鏈接
# 標(biāo)簽
git tag 標(biāo)簽 //打標(biāo)簽命令崎岂,默認(rèn)為HEAD
git tag //顯示所有標(biāo)簽
git tag 標(biāo)簽 版本號 //給某個commit版本添加標(biāo)簽
git show 標(biāo)簽 //顯示某個標(biāo)簽的詳細(xì)信息
# 同步遠(yuǎn)程倉庫更新
git fetch? origin master