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 強推
git clone git@github.com:git帳號名/倉庫名.git
2、工作基本操作
git checkout master 切到主分支
git fetch origin 獲取最新變更
git checkout -b dev origin/master 基于主分支創建dev分支
git add . 添加到緩存
git commit -m ‘xxx’ 提交到本地倉庫
git fetch origin 獲取最新變更
3、初始化倉庫
git init
4、查看倉庫當前狀態
git status
5、文件相關操作
將文件添加到倉庫:
git add 文件名 將工作區的某個文件添加到暫存區
git add . 將當前工作區的所有文件都加入暫存區
git add -u 添加所有被tracked文件中被修改或刪除的文件信息到暫存區,不處理untracked的文件
git add -A 添加所有被tracked文件中被修改或刪除的文件信息到暫存區,包括untracked的文件
git add -i 進入交互界面模式,按需添加文件到緩存區
將暫存區文件提交到本地倉庫:
git commit -m “提交說明” 將暫存區內容提交到本地倉庫
git commit -a -m “提交說明” 跳過緩存區操作,直接把工作區內容提交到本地倉庫
比較文件異同
git diff 工作區與暫存區的差異
git diff 分支名 工作區與某分支的差異,遠程分支這樣寫:remotes/origin/分支名
git diff HEAD 工作區與HEAD指針指向的內容差異
git diff 提交id 文件路徑 工作區某文件當前版本與歷史版本的差異
git diff –stage 工作區文件與上次提交的差異(1.6 版本前用 –cached)
git diff 版本TAG 查看從某個版本后都改動內容
git diff 分支A 分支B 比較從分支A和分支B的差異(也支持比較兩個TAG)
git diff 分支A…分支B 比較兩分支在分開后各自的改動
另外:如果只想統計哪些文件被改動,多少行被改動,可以添加 –stat 參數
6、查看歷史記錄
git log 查看所有commit記錄(SHA-A校驗和,作者名稱,郵箱,提交時間,提交說明)
git log -p -次數 查看最近多少次的提交記錄
git log –stat 簡略顯示每次提交的內容更改
git log –name-only 僅顯示已修改的文件清單
git log –name-status 顯示新增,修改,刪除的文件清單
git log –oneline 讓提交記錄以精簡的一行輸出
git log –graph –all –online 圖形展示分支的合并歷史
git log –author=作者 查詢作者的提交記錄(和grep同時使用要加一個–all–match參數)
git log –grep=過濾信息 列出提交信息中包含過濾信息的提交記錄
git log -S查詢內容 和–grep類似,S和查詢內容間沒有空格
git log fileName 查看某文件的修改記錄
7、代碼回滾
git reset HEAD^ 恢復成上次提交的版本
git reset HEAD^^ 恢復成上上次提交的版本,就是多個^,以此類推或用~次數
git reflog
git reset –hard 版本號
–soft:只是改變HEAD指針指向,緩存區和工作區不變;
–mixed:修改HEAD指針指向,暫存區內容丟失,工作區不變;
–hard:修改HEAD指針指向,暫存區內容丟失,工作區恢復以前狀態;
8、版本庫相關操作
刪除版本庫文件:git rm 文件名
版本庫里的版本替換工作區的版本:git checkout — test.txt
9、遠程倉庫相關操作
同步遠程倉庫:git push -u origin master
本地倉庫內容推送到遠程倉庫:git remote add origin git@github.com:帳號名/倉庫名.git
從遠程倉庫克隆項目到本地:git clone git@github.com:git帳號名/倉庫名.git
查看遠程庫信息:git remote
拉取遠程分支到本地倉庫:
git checkout -b 本地分支 遠程分支 # 會在本地新建分支,并自動切換到該分支
git fetch origin 遠程分支:本地分支 # 會在本地新建分支,但不會自動切換,還需checkout
git branch –set-upstream 本地分支 遠程分支 # 建立本地分支與遠程分支的鏈接
同步遠程倉庫更新::git fetch origin master
10、分支相關操作
創建分支:git checkout -b dev -b表示創建并切換分支
上面一條命令相當于一面的二條:
git branch dev 創建分支
git checkout dev 切換分支
查看分支:git branch
合并分支:
git merge dev #用于合并指定分支到當前分支
git merge –no-ff -m “merge with no-ff” dev #加上–no-ff參數就可以用普通模式合并,合并后的歷史有分支,能看出來曾經做過合并
刪除分支:git branch -d dev
查看分支合并圖:git log –graph –pretty=oneline –abbrev-commit
11、git相關配置
安裝完Git后第一件要做的事,設置用戶信息(global可換成local在單獨項目生效):
git config –global user.name “用戶名” # 設置用戶名
git config –global user.email “用戶郵箱” #設置郵箱
git config –global user.name # 查看用戶名是否配置成功
git config –global user.email # 查看郵箱是否配置
12、其他查看配置相關
git config –global –list # 查看全局設置相關參數列表
git config –local –list # 查看本地設置相關參數列表
git config –system –list # 查看系統配置參數列表
git config –list # 查看所有Git的配置(全局+本地+系統)
git config –global color.ui true //顯示git相關顏色
13、撤消某次提交
git revert HEAD # 撤銷最近的一個提交
git revert 版本號 # 撤銷某次commit
14、標簽
git tag 標簽 //打標簽命令,默認為HEAD
git tag //顯示所有標簽
git tag 標簽 版本號 //給某個commit版本添加標簽
git show 標簽 //顯示某個標簽的詳細信息