一,.gitignore文件的配置
在提交代碼的時(shí)候,有些東西比如.idea這類(lèi)本地的文件,是不需要提交到遠(yuǎn)程的,這個(gè)時(shí)候,我們就需要進(jìn)行.gitignore文件的配置
1,在本地克隆倉(cāng)庫(kù)
2,進(jìn)入倉(cāng)庫(kù),創(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,克隆倉(cāng)庫(kù):
命令: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賬戶(hù)設(shè)置的郵箱)
git config --global user.name "xxx"(在github賬戶(hù)設(shè)置的用戶(hù)名)
9,提交文件(提交到本地.git 文件夾下)
命令:git commit -m "提交的內(nèi)容"
10,提交代碼到遠(yuǎn)程倉(cāng)
命令:git push?
這時(shí)候git會(huì)提示輸入用戶(hù)名和密碼,輸入github的用戶(hù)名和密碼就好啦!
2,SSH的方式
這個(gè)方式相比http方式比較簡(jiǎn)潔,設(shè)置以后就不要經(jīng)常輸入用戶(hù)名和密碼了,推薦使用
1,生成ssh key
命令: ssh-keygen -t rsa -C "xxx@xxx.com"
再按兩次回車(chē),就可以生成秘鑰了,頁(yè)面會(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,克隆倉(cāng)庫(kù)
git clone xxxx.ssh
這里會(huì)要求輸入y/n,輸入y
5,添加本地文件(追蹤)
命令:git add xxx
6,提交文件(提交到本地.git 文件夾下)
命令:git commit -m "提交的內(nèi)容"
7,提交代碼到遠(yuǎn)程倉(cāng)
命令:git push?
三,git常用命令
1,查看操作信息
1),查看提交歷史
git log?

2),顯示最近2次提交的內(nèi)容
git -p -2?

3),將每一種提交都放在一行來(lái)顯示
git log --pretty=oneline
4),查看各個(gè)分支的提交

2,提交代碼
1)git add .? 提交文件
2)git commit - m "xxx"? 描述提交的內(nèi)容
3)git push 推到遠(yuǎn)程倉(cāng)

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,撤銷(xiāo)文件
1)在添加后撤銷(xiāo)提交
git reset HEAD a.txt?

2)在commit后撤銷(xiāo)提交
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)致無(wú)法拉取;這個(gè)時(shí)候我們需要用暫存功能先緩存,然后在拉代碼下來(lái),解決沖突,然后再推上去。


這個(gè)時(shí)候,我們就需要用到文件暫存功能
git stash

1,查看暫存區(qū)內(nèi)容
git stash list
2,把代碼從暫存區(qū)拉出來(lái)并刪除暫存區(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)程倉(cāng)的區(qū)別
git diff --cached filename
3),比較本地工作目錄和遠(yuǎn)程倉(cāng)的區(qū)別(查到遠(yuǎn)程的id號(hào),然后再進(jìn)行比對(duì))
git diff commitID filename

4),比較2個(gè)遠(yuǎn)程倉(cāng)之間的區(qū)別
git diff commitID1 commitID2

8,標(biāo)簽(版本上線(xiàn)了,需要用標(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,通過(guò)命令來(lái)刪除