Git使用筆記
//查看某個命令文檔 git help <command> git <command> -h git <command> --help
1.基本操作
用戶配置
git config --global user.name "xujianfu" git config --global user.email 895193543@qq.com
配置級別
–local(默認,高級優先):隻影響本地倉庫 –global(中優先級):隻影響所有當前用戶的git倉庫 –system(低優先級):影響到全系統的git倉庫
倉庫操作
//初始化倉庫 git init //對狀態的跟蹤 git status
注意:git status介紹:
git中有兩個狀態:內容狀態和文件狀態,
內容狀態標示內容文件的改變,有三個區域:工作目錄,暫存區和提交區
文件狀態有兩個狀態:已跟蹤和未跟蹤
//添加文件內容到暫存區(同時文件被跟蹤) git add //添加所有文件 git add . git rm --cached :僅從暫存區刪除 git rm :從暫存區與工作目錄同時刪除 git rm $(git ls-files --deleted):刪除所有被跟蹤,但是在工作目錄被刪除的文件 git -commit -m 'first commit' //從暫存區提交 -m:註釋 git commit -a -m 'full commit'從工作區提交 git log //查看提交歷史記錄 git log --online git log --color --graph git diff //工作區與暫存區的差異 git diff --cached [<reference>]//暫存區與某次提交的差異,默認爲HEAD git diff [<reference>]//工作區與某次提交的差異,默認爲HEAD git checkout -- <file> //將文件內容從暫存區複製到工作目錄 //撤銷暫存區內容 git reset HEAD <file> //將文件內容從上次提交複製到緩存區 git checkout HEAD -- <file> //將內容從上次提交複製到工作目錄
分支操作
1.git branch 分支的增刪查改都靠它
git branch <branchName> //創建一個分支 git branch -d <branchName> //刪除一個分支 git branch -v //顯示所有分支信息
2.git checkout
git checkout <branchName> //通過移動HEAD檢出版本,可用於切換分支 git checkout -b <branchName> //創件一個分支並切換 git checkout <reference> //將其移動到一個引用 git checkout - //恢復到上一個分支
git checkout 也可以跟一個commitid,這時候HEAD指向這個commitid跟所有分支分離,這個狀態爲detached
3.git reset
//git reset 將當前分支回退到歷史某個版本 git reset --mixed <commit> //(默認) git reset --soft<commit> git reset --hard <commit>
4.git stash
git stash 用來保存目前的工作目錄和暫存區狀態,並返回到乾淨的工作空間
有時候我們要切換分支會有以下提示,是因爲當前分支還有內容未提交,現在切換內容會丟失。這時候要用到git stash 命令
git stash save "push to stash area" // 通過save 後面傳入信息標識 放到stash區 git stash llist //查看收藏的記錄 git stash apply stash@{0} //將保存的內容重新恢復到工作目錄 git stash drop stash@{0} //將對應的stash記錄刪除 git stash pop //= git stash apply + git stash drop
5.git merge
合併分支 git cat-file -p HEAD //查看某個對象的具體信息 git merge 基本會出現衝突 merge fast-forward merge fast-forward //默認 不會顯示 feature,只保留單條分支記錄。git直接把HEAD指針指向合併分支的頭,完成合並。屬於“快進方式”,不過這種情況如果刪除分支,則會丟失分支信息。因爲在這個過程中沒有創建commit git merge --no-ff //指的是強行關閉fast-forward方式。可以保存之前的分支歷史。能夠更好的查看 merge歷史,以及branch 狀態 git rebase //修剪提交歷史基線,俗稱“變基” git rebase --onto master 5755487
6.遠程操作
git init ~/git-server --bare //初始化一個本地的遠程服務器 git push //將本地歷史推送到遠程 git remote add origin ~/git-server //添加一個遠程倉庫的別名 git remote -v //查看遠程倉庫信息 git fetch //獲取遠程倉庫的提交記錄 git pull // git pull = git fetch + git merge git clone //克隆一個遠程倉庫作爲本地倉庫