一、拉取倉(cāng)庫(kù)代碼
1、拉取master分支
git clone <git地址>
2、拉取項(xiàng)目指定分支
git clone -b dev <git地址>
二、忽略配置特殊文件
.gitignore
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# Eclipse files
.classpath
.project
.settings
.metadata
# IntelliJ IDEA files
.iml
.ipr
.iws
.idea/
# Gradle files
.gradle/
# Mac OS files
.DS_Store
# Compiled files
build/
out/
bin/
target/
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
三、常用操作
1、添加文件
git add . #添加所有文件
git add * #添加有變動(dòng)的文件
git add <fileName> #添加指定文件
2、撤銷(xiāo)添加文件
git reset HEAD .
git reset HEAD *
git reset HEAD 文件名
3、恢復(fù)文件
git checkout -- 文件名
4、提交文件
git commit -m "注釋內(nèi)容"
5、修改提交注釋
git commit --amend
6、撤銷(xiāo)提交文件
git reset --mixed HEAD^ #撤銷(xiāo)提交[默認(rèn)](撤銷(xiāo)commit、撤銷(xiāo)add、不刪除改動(dòng))
git reset HEAD^
git reset --soft HEAD^ #撤銷(xiāo)提交(撤銷(xiāo)commit、不撤銷(xiāo)add、不刪除改動(dòng))
git reset --hard HEAD^ #撤銷(xiāo)提交(撤銷(xiāo)commit、撤銷(xiāo)add、刪除改動(dòng)恢復(fù)到上次commit)
7、查看commit記錄
git log
8、版本回退到指定commit版本
git reset --hard 7cf84b6
9、查看所有記錄(包含reset操作)
git reflog
10、恢復(fù)版本到誤回退版本
git reset --hard fd00496
11、推送遠(yuǎn)程服務(wù)器
git push origin master
git push
四、本地分支管理
1、創(chuàng)建分支
git branch dev
2、切換分支
git checkout dev
3、創(chuàng)建并切換分支
git checkout -b dev
4、查看分支
git branch
5、查看所有未合并分支(在master下操作)
git branch --no-merged
6、合并分支
git merge dev
7、刪除分支
git branch -d dev
五、遠(yuǎn)程分支管理
1、查看分支
git branch -r
2、拉取遠(yuǎn)程分支并切換至此分支
git checkout -b 本地分支名 origin/遠(yuǎn)程分支名
六、分支策略
1、主分支master
有且僅有一個(gè)master分支,該分支是非常穩(wěn)定的,也就是僅用來(lái)發(fā)布新版本,平時(shí)不能在上面干活

master
2、開(kāi)發(fā)分支develop
日常開(kāi)發(fā)用的分支,如果想正式對(duì)外發(fā)布,就在master分支上,對(duì)develop分支進(jìn)行合并
每個(gè)開(kāi)發(fā)人員都在develop分支上干活,每個(gè)開(kāi)發(fā)人員都有自己的分支,時(shí)不時(shí)地往develop分支上合并就可以了

develop
3、功能分支feature
在開(kāi)發(fā)中,會(huì)有無(wú)窮無(wú)盡的新的功能不斷添加進(jìn),每添加一個(gè)新功能,最好新建一個(gè)feature分支,feature分支從develop分支上面分出來(lái)的,開(kāi)發(fā)完成后,再并入develop分支,最后刪除該feature分支

feature
4、BUG分支fixbug
每個(gè)bug都可以通過(guò)一個(gè)新的臨時(shí)分支來(lái)修復(fù),修復(fù)bug分支是從master分支上面分出來(lái)的,修復(fù)結(jié)束以后,再合并進(jìn)master和develop分支,最后將臨時(shí)分支刪除

fixbug
5、預(yù)發(fā)布分支release
發(fā)布正式版本之前(即合并到master分支之前),我們可能需要有一個(gè)預(yù)發(fā)布的版本進(jìn)行測(cè)試,預(yù)發(fā)布分支是從develop分支上面分出來(lái)的,預(yù)發(fā)布結(jié)束以后,必須合并進(jìn)develop和master分支,最后刪除release分支
七、沖突處理
1、合并沖突
git pull
git merge dev
2、查看分支合并圖
git log --graph
git log --graph --pretty=oneline --abbrev-commit
八、本地存儲(chǔ)
1、保存本地修改
git stash
2、查看保存標(biāo)記
git stash list
3、還原本地修改
git stash pop
git stash pop stash@{0}
4、清空本地存儲(chǔ)
git stash clear
九、設(shè)置Tag
1、列出已有tag
git tag
2、創(chuàng)建tag
git tag v1.0
git tag -a v1.0 -m "備注信息"
git tag -a v1.0 9fceb02 -m "備注信息"
3、同步遠(yuǎn)端服務(wù)器
git push origin v1.0
4、本地刪除tag
git tag -d v1.0
5、遠(yuǎn)端刪除tag
git push origin :refs/tags/v1.0