一,.gitignore文件的配置
在提交代碼的時(shí)候撰豺,有些東西比如.idea這類本地的文件,是不需要提交到遠(yuǎn)程的拼余,這個(gè)時(shí)候污桦,我們就需要進(jìn)行.gitignore文件的配置
1,在本地克隆倉庫
2匙监,進(jìn)入倉庫凡橱,創(chuàng)建.gitignore文件:vim .gitignore
3,編輯.gitignore文件
*.aa? ? ? 忽略以.aa結(jié)尾的文件
idea/? ? ?忽略idea文件夾
/ignore? ? ?忽略根目錄下的ignore文件亭姥,不代表忽略doc/ignore文件
/doc/*.txt? ? 忽略doc目錄下的任意txt文件稼钩,但不包括dir/doc/*.txt
doc/**/*/*.txt? ? ? 忽略doc目錄下任意位置的txt文件
**/dir? ? ?忽略任意文件夾下的dir文件 ,比如 doc/dir,doc/bin/doc 达罗,前面有多少層都行
fiename? ? ? 忽略指定的文件夾
! doc/filename? ? ?不忽略doc下的filename文件(用處:想要忽略除xx.txt外的任意txt坝撑,可以配合前面使用)
二静秆,git的配置
1,HTTP方式
1巡李,到github上創(chuàng)建一個(gè)項(xiàng)目
2抚笔,下載git并安裝:
命令:sudo apt-get install git
驗(yàn)證是否裝好:git --version
3,在linux系統(tǒng)里新建一個(gè)文件夾:
命令:mkdir xxx
4侨拦,切換到該文件夾目錄下
命令:cd xxx
5殊橙,克隆倉庫:
命令:git clone xxx(地址去github上的項(xiàng)目詳情里面copy)
6,添加本地文件(追蹤)
命令:git add xxx
7,查看狀態(tài)
命令:git status
8狱从,設(shè)置全局變量
命令:git config --global user.email "xxx@163.com" (在github賬戶設(shè)置的郵箱)
git config --global user.name "xxx"(在github賬戶設(shè)置的用戶名)
9蛀柴,提交文件(提交到本地.git 文件夾下)
命令:git commit -m "提交的內(nèi)容"
10,提交代碼到遠(yuǎn)程倉
命令:git push?
這時(shí)候git會(huì)提示輸入用戶名和密碼矫夯,輸入github的用戶名和密碼就好啦鸽疾!
2,SSH的方式
這個(gè)方式相比http方式比較簡潔训貌,設(shè)置以后就不要經(jīng)常輸入用戶名和密碼了制肮,推薦使用
1,生成ssh key
命令: ssh-keygen -t rsa -C "xxx@xxx.com"
再按兩次回車递沪,就可以生成秘鑰了豺鼻,頁面會(huì)有提示具體放在哪兒
2,進(jìn)入目錄款慨,找到秘鑰并復(fù)制秘鑰
命令:
cd ~? 進(jìn)入目錄
pwd 顯示當(dāng)前目錄
cd .ssh/ 進(jìn)入ssh目錄
ls -al? ?顯示所有文件
cat id_rsa.pub? 查看秘鑰
3儒飒,復(fù)制秘鑰到gitlab
進(jìn)入gitlab--settings-ssh keys,把秘鑰粘進(jìn)去檩奠,并取個(gè)名字桩了,點(diǎn)擊添加
4,克隆倉庫
git clone xxxx.ssh
這里會(huì)要求輸入y/n埠戳,輸入y
5井誉,添加本地文件(追蹤)
命令:git add xxx
6,提交文件(提交到本地.git 文件夾下)
命令:git commit -m "提交的內(nèi)容"
7整胃,提交代碼到遠(yuǎn)程倉
命令:git push?
三颗圣,git常用命令
1,查看操作信息
1)屁使,查看提交歷史
git log?
2)在岂,顯示最近2次提交的內(nèi)容
git -p -2?
3),將每一種提交都放在一行來顯示
git log --pretty=oneline
4)蛮寂,查看各個(gè)分支的提交
2蔽午,提交代碼
1)git add .? 提交文件
2)git commit - m "xxx"? 描述提交的內(nèi)容
3)git push 推到遠(yuǎn)程倉
3,分支
1)共郭,創(chuàng)建并切換分支
git checkout -b branchname
2)祠丝,查看本地分支
git branch
3),查看本地及遠(yuǎn)程分支
git branch -a?
4)除嘹,切換到master分支
git checkout master
5)写半,只想創(chuàng)建,不想切換分支
git branch a
6)尉咕,合并代碼到master分支
git checkout master? ? // 切換到master分支
git merge a? ? ?// 把a(bǔ)分支合并到master分支
7)叠蝇,刪除分支
git branch -d a? ? ? //? 刪除a分支(本地)
git branch -D a? ? ?//? 強(qiáng)制刪除a分支(本地)
ps:如果一個(gè)分支已經(jīng)提交遠(yuǎn)程分支,那么就需要?jiǎng)h除本地和遠(yuǎn)程2個(gè)分支
git push origin -d a? ?刪除遠(yuǎn)程分支
4,撤銷文件
1)在添加后撤銷提交
git reset HEAD a.txt?
2)在commit后撤銷提交
1, git? reflog? ?// 查看所有分支的操作記錄
2年缎,git reset --hard xxx
5.版本回退
1悔捶,git log? ? // 查看版本
2,回退到指定版本
git reset --hard de21334 (在commit 后面有一串字符单芜,我們?nèi)∏?位就好)
6蜕该,沖突解決
如果本地有個(gè)a.txt文件,然后從遠(yuǎn)程拉代碼的時(shí)候洲鸠,也有a.txt堂淡,這樣就會(huì)產(chǎn)生沖突,導(dǎo)致無法拉劝峭蟆绢淀;這個(gè)時(shí)候我們需要用暫存功能先緩存,然后在拉代碼下來瘾腰,解決沖突皆的,然后再推上去。
這個(gè)時(shí)候蹋盆,我們就需要用到文件暫存功能
git stash
1费薄,查看暫存區(qū)內(nèi)容
git stash list
2,把代碼從暫存區(qū)拉出來并刪除暫存區(qū)內(nèi)容
git stash pop
3栖雾,從暫存區(qū)恢復(fù)某個(gè)暫存的內(nèi)容(恢復(fù)完后會(huì)合并沖突义锥,接著就需要自行去解決沖突了。)
git stash app xxx
4岩灭,清空暫存區(qū)
git stash clear
5拌倍,刪除指定緩存
git stash drop xxx
6,查看緩存區(qū)的操作
git stash show
7噪径,查看緩存區(qū)具體操作(增加柱恤,減少啥的)
git stash show -p
8,從暫存區(qū)創(chuàng)建分支(會(huì)丟棄緩存區(qū)存的內(nèi)容)
git stash branch branchname
7找爱,差異比對(duì)
1)梗顺,比較本地工作目錄和暫存區(qū)的差別
git diff filename
2),比較緩存區(qū)和遠(yuǎn)程倉的區(qū)別
git diff --cached filename
3)车摄,比較本地工作目錄和遠(yuǎn)程倉的區(qū)別(查到遠(yuǎn)程的id號(hào)寺谤,然后再進(jìn)行比對(duì))
git diff commitID filename
4)仑鸥,比較2個(gè)遠(yuǎn)程倉之間的區(qū)別
git diff commitID1 commitID2
8,標(biāo)簽(版本上線了变屁,需要用標(biāo)簽記錄下)
1)眼俊,創(chuàng)建一個(gè)標(biāo)簽
git tag -a v1 -m "v1 version online"
2),查看標(biāo)簽
git tag
3)粟关,查看某個(gè)版本的標(biāo)簽
git tag -l "v1*"? ? ?//查看v1版本的標(biāo)簽
4)疮胖,顯示某個(gè)標(biāo)簽的具體內(nèi)容
git show v1
5)推標(biāo)簽到遠(yuǎn)程
git push origin v1? ? // 推v1標(biāo)簽到遠(yuǎn)程
git push origin --tags? ?// 推多個(gè)標(biāo)簽到遠(yuǎn)程
6)刪除標(biāo)簽(本地)
git tag -d v1
刪除遠(yuǎn)程標(biāo)簽
1,在界面刪除
2闷板,通過命令來刪除