一、git是什麼git
git是分佈式版本管理工具,一臺電腦既能夠是客戶端,也能夠是服務端。工做過程當中能夠斷開網絡。github
git中的三個概念:網絡
一、版本庫:在初始化git版本庫以後會生成一個隱藏的文件, .git能夠將該文件理解爲git的版本庫repository;app
二、工做區:項目目錄;分佈式
三、暫存區:.git目錄中的index文件就是暫存區,同時,git還爲咱們自動生成一個master分支以及指向該分支的指針head在.git文件夾中。工具
git命令行使用spa
1.1 git init 建立版本庫 (建立本地版本庫)命令行
1.2 git add filename 提交到版本庫暫存區指針
1.3 git commit -m '註釋' 將暫存區提交到版本庫blog
1.4 git log 查看版本庫提交歷史(能夠查詢commit提交版本號)
1.5 git reset --hard HEAD^ 版本回退 首先,Git必須知道當前版本是哪一個版本,在Git中,用`HEAD`表示當前版本,也就是最新的提交`1094adb...`(注意個人提交ID和你的確定不同),上一個版本就是`HEAD^`,上上一個版本就是`HEAD^^`,固然往上100個版本寫100個`^`比較容易數不過來,因此寫成`HEAD~100`。
1.6 git reset --hard <commit it> 版本回退, <commit it> 指定版本號
1.7 git reflog 查詢命令歷史
2 工做區和暫存區
2.1 每次修改,若是不用`git add`到暫存區,那就不會加入到`commit`中。
2.2 git status 查看工做區和暫存區的狀態信息
2.3 git checkout -- file 工做區的撤銷修改 (沒有-- 就表示切換到分支了)
2.4 git reset HEAD <file>暫存區的修改撤銷掉,從新放回工做區
2.5 git rm <file> 刪除文件 而後commit提交
3 遠程倉庫
3.1 git remote add origin git@github.com:zjhlovewtr/test.git 版本倉庫與本地倉庫進行關聯
3.2 git push -u origin master 把本地倉庫內容推送到遠倉倉庫 因爲遠程庫是空的,咱們第一次推送`master`分支時,加上了`-u`參數,Git不但會把本地的`master`分支內容推送的遠程新的`master`分支,還會把本地的`master`分支和遠程的`master`分支關聯起來,在之後的推送或者拉取時就能夠簡化命令。
3.3 git push origin master 修改後推送
3.4 git clone git@github.com:zjhlovewtr/test.git 從遠程倉庫克隆一個倉庫到本地(不須要git init操做)
4 git 分支
git branch <branchName> 建立分支
git checkout <branchName>切換分支
git merge <branchName> 合併分支(branch name爲目標分支)
git branch -d <branchNanme> 刪除分支
git checkout -b <branchNanme>建立+切換分支
5 衝突解決
先文件修改
而後git add <fileName>
而後git commit -m '分支修改'
最後在合併
git merge --no-ff -m "merge with no-ff" dev 普通分支合併 請注意`--no-ff`參數,表示禁用`Fast forward`:
bug 分支
git stash 保留修改現場狀況
git stash list 查詢工做現場狀況
`git stash apply`恢復,可是恢復後,stash內容並不刪除,你須要用`git stash drop`來刪除;
git stash pop 恢復的同時把stash內容也刪了
6 標籤管理
git tag v1.0 建立標籤
git tag 查詢全部標籤
`git push origin <tagname>`能夠推送一個本地標籤;
`git push origin --tags`能夠推送所有未推送過的本地標籤;
`git tag -d <tagname>`能夠刪除一個本地標籤;
`git push origin :refs/tags/<tagname>`能夠刪除一個遠程標籤。