1、安裝git
Git是分布式版本控制系統(tǒng),所以,每個(gè)機(jī)器都必須自報(bào)家門
git config --global user.name "xxx"
git config --global user.email "xxx@xxx.com"
2、創(chuàng)建版本庫
將一個(gè)目錄設(shè)置為git管理的目錄
git init
3、版本管理
文件修改狀態(tài) git status
文件修改內(nèi)容 git diff readme.txt
加入暫存區(qū) git add readne.txt
提交版本 git commit -m "add v1"
4、版本回退
查看版本修改日志 git log readme.txt
在Git中,用HEAD表示當(dāng)前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一樣),上一個(gè)版本就是HEAD,上上一個(gè)版本就是HEAD,當(dāng)然往上100個(gè)版本寫100個(gè)比較容易數(shù)不過來,所以寫成HEAD~100
回退上個(gè)版本 git reset --hard HEAD^
回退后返回原來版本 git reset --hard 76634b8(版本號(hào),無需寫全,git自行尋找)
git reflog 可以查看操作命令,以便于處理找不到commitid無法恢復(fù)的情況。
用git diff HEAD -- readme.txt命令可以查看工作區(qū)和版本庫里面最新版本的區(qū)別
5、撤銷修改
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作區(qū)的修改全部撤銷,這里有兩種情況:
一種是readme.txt自修改后還沒有被放到暫存區(qū),現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài);
一種是readme.txt已經(jīng)添加到暫存區(qū)后,又作了修改,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。
總之,就是讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)
6、刪除文件
工作區(qū)刪除文件后,git status發(fā)現(xiàn)版本庫與工作區(qū)不一致
1、git rm readme.txt/git commit -m "gove readme.txt" 刪除版本庫文件
2、git checkout -- readme.txt 從版本庫恢復(fù)到工作區(qū)
7、推送到遠(yuǎn)程倉庫
要關(guān)聯(lián)一個(gè)遠(yuǎn)程庫,使用命令git remote add origin git@server-name:path/repo-name.git;
關(guān)聯(lián)后,使用命令git push -u origin master第一次推送master分支的所有內(nèi)容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
8、從遠(yuǎn)程庫克隆
需要知道遠(yuǎn)程庫地址 git clone http://10.100.62.91/chenyuz/vms.git
9、創(chuàng)建和合并分支
創(chuàng)建:git checkout -b lin
切換:git checkout master
刪除:git branch -d dev
合并:git merge lin
10、bug分支
修復(fù)bug時(shí),我們會(huì)通過創(chuàng)建新的bug分支進(jìn)行修復(fù),然后合并,最后刪除;
當(dāng)手頭工作沒有完成時(shí),先把工作現(xiàn)場(chǎng)git stash一下,然后去修復(fù)bug,修復(fù)后,再git stash pop,回到工作現(xiàn)場(chǎng)
11、分支
分支修改提交后未合并 無法刪除
git branch -D feature-vulcan -D強(qiáng)制刪除
12拉取
git pull origin master
12、拉取合并
git fetch origin master:dev
上面代碼的意思是:從遠(yuǎn)程的origin倉庫的master分支下載到本地master并新建一個(gè)temp分支
- 查看temp分支與本地原有分支的不同
git diff dev - 將temp分支和本地的master分支合并
git merge dev