一燃逻、git基本命令
1. 初始化
創(chuàng)建一個(gè)git倉(cāng)庫(kù)揭朝,創(chuàng)建之后就會(huì)在當(dāng)前目錄生成一個(gè).git的文件
git init
2.添加文件:把文件添加到緩沖區(qū)
git add filename
添加所有文件到緩沖區(qū)(后面加“.”與加all區(qū)別在于氓皱,加all可以添加被手動(dòng)刪除的文件蜒车,而加“.”不行):
git add .
git add --all
3. 刪除文件
git rm filename
4. 提交
提交緩沖區(qū)的所有修改到倉(cāng)庫(kù)(注意:如果修改了文件但是沒(méi)有add到緩沖區(qū)河胎,也是不會(huì)被提交的)
git commit -m "提交的說(shuō)明"
commit可以一次提交緩沖區(qū)的所有文件
5. 查看git庫(kù)的狀態(tài)闯袒,未提交的文件,分為兩種仿粹,add過(guò)已經(jīng)在緩沖區(qū)的搁吓,未add過(guò)的
git status
6. 比較:如果文件修改了,還沒(méi)有提交吭历,就可以比較文件修改前后的差異
git diff filename
7. 查看日志
git log
8. 版本回退:可以將當(dāng)前倉(cāng)庫(kù)回退到歷史的某個(gè)版本
git reset
第一種用法:回退到上一個(gè)版本(HEAD代表當(dāng)前版本堕仔,有一個(gè)^代表上一個(gè)版本,以此類推)
git reset --hard HEAD^
第二種用法:回退到指定版本(其中d7b5是想回退的指定版本號(hào)的前幾位)
git reset --hard d7b5
具體的效果如下
9. 查看命令歷史:查看倉(cāng)庫(kù)的操作歷史
git reflog
10. git分支管理
查看分支的情況晌区,前面帶*號(hào)的就是當(dāng)前分支
git branch
11.創(chuàng)建分支
git branch 分支名
切換當(dāng)前分支到指定分支
git checkout 分支名
創(chuàng)建分支并切換到創(chuàng)建的分支
git checkout -b 分支名
合并某分支的內(nèi)容到當(dāng)前分支
git merge 分支名
12. 刪除分支
git branch -d 分支名
如果兩個(gè)分支同時(shí)進(jìn)行了同一個(gè)文件的修改和提交摩骨,在merge時(shí)就會(huì)產(chǎn)生沖突,首先要手動(dòng)打開(kāi)文件解決沖突朗若,再提交恼五,就相當(dāng)于進(jìn)行了merge
從下圖可以看到,紅色和綠色的虛線分別代表兩個(gè)分支哭懈,兩個(gè)分支分別進(jìn)行了commit灾馒,最新的一次提交將兩個(gè)分支內(nèi)容進(jìn)行了合并。
13. 查看分支合并圖
git log --graph
14. 新建標(biāo)簽遣总,默認(rèn)為最新版本睬罗,后面加上版本號(hào)參數(shù)則可指定版本增加標(biāo)簽
git tag 標(biāo)簽名 版本號(hào)
查看所有標(biāo)簽:
git tag
查看標(biāo)簽的詳細(xì)信息
git show 標(biāo)簽名
15. 將tag提交到遠(yuǎn)端倉(cāng)庫(kù)
推送所有tag:
git push origin --tags
推送某個(gè)tag:
git push origin v1.0
16. git遠(yuǎn)端庫(kù)相關(guān)
git remote add origin git://127.0.0.1/abc.git 這樣就增加了遠(yuǎn)程倉(cāng)庫(kù)abc轨功。
git remote remove origin移除遠(yuǎn)端倉(cāng)庫(kù)
將本地倉(cāng)庫(kù)內(nèi)容推送到遠(yuǎn)端倉(cāng)庫(kù)(-u 表示第一次推送master分支的所有內(nèi)容,后面再推送就不需要-u了)容达,跟commit的區(qū)別在于一個(gè)是提交到本地倉(cāng)庫(kù)古涧,一個(gè)是提交到遠(yuǎn)程倉(cāng)庫(kù)
git push -u origin master
從遠(yuǎn)端庫(kù)更新內(nèi)容到本地(相當(dāng)于svn的update),
git pull
tips:如果push的時(shí)候花盐,本地和文件和遠(yuǎn)端文件有沖突羡滑,就要先pull、然后手動(dòng)解決沖突算芯,才能繼續(xù)push
17. git記住用戶名密碼
push的時(shí)候默認(rèn)每次都需輸入GitHub的用戶名和密碼柒昏,在git倉(cāng)庫(kù)根目錄下.git文件夾的config文件末尾增加如下內(nèi)容,即可記住用戶名密碼也祠,無(wú)需每次推送都輸入了
[credential]
helper = store
18. 提交到git時(shí)昙楚,忽略部分IDE產(chǎn)生的文件
在根目錄下創(chuàng)建.gitignore文件, 注意:新加.gitignore只能忽略那些原來(lái)沒(méi)有被提交過(guò)的文件诈嘿,如果某些文件已經(jīng)被納入了版本管理中堪旧,則修改.gitignore是無(wú)效的。
解決方法就是先把本地緩存刪除(改變成未track狀態(tài))奖亚,然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
gitignore文件內(nèi)容淳梦,舉例如下:
/**/target
/**/.project
/**/.classpath
/**/.settings