1.1 介紹
前面我們學(xué)習(xí)了GitLab環(huán)境的安裝部署方法,知道了Git這個(gè)版本控制軟件的作用和基本使用方法。今天福哥要帶著大家學(xué)習(xí)如何在Windows環(huán)境下使用Git客戶(hù)端去操作我們的項(xiàng)目文件,這個(gè)是每一個(gè)搞技術(shù)的人員都需要學(xué)習(xí)的知識(shí),請(qǐng)大家打起精神來(lái)跟著福哥一起學(xué)習(xí)吧~
今天的內(nèi)容有點(diǎn)多,大家可以收藏起來(lái)作為Git的使用手冊(cè)!
除了今天福哥教給大家的知識(shí)之外,更多的是需要大家在日常的項(xiàng)目開(kāi)發(fā)當(dāng)中熟練掌握Git的使用技巧!
1.2 環(huán)境
操作系統(tǒng) | Windows 10 專(zhuān)業(yè)版 64位 |
Git客戶(hù)端軟件 | 2.41.0 |
Git服務(wù)器軟件 | gitlab/gitlab-ce:12.1.3-ce.0 |
Git服務(wù)器IP | 192.168.168.68 |
Git服務(wù)器端口 | 1022 |
2.1 下載
Git官網(wǎng)下載地址,我們下載標(biāo)準(zhǔn)安裝包的64位版本。
https://git-scm.com/download/win
現(xiàn)在這個(gè)鏈接改成github的了,下載速度真的太慢了!
2.2 安裝
啟動(dòng)安裝包,UAC確認(rèn)一下!
一路“next”安裝下去,全部選默認(rèn)選項(xiàng)即可~
Git開(kāi)始安裝了!
不用看發(fā)行信息,去掉“View Release Notes”選項(xiàng),點(diǎn)擊“Finish”按鈕完成安裝!
3.1 建立目錄
打開(kāi)資源管理器,選擇一個(gè)分區(qū),在里面建立目錄tongfu.net\web。
3.2 打開(kāi)Git Bash
在web目錄的空白處單機(jī)右鍵選擇“Open Git Bash here”打開(kāi)Git的Bash終端窗口。后面的所有對(duì)git的操作都是在這里通過(guò)輸入命令行完成的哦~
3.3 SSH授權(quán)
先把安裝好的Git與前面搭建的GitLab配置起來(lái),這樣在使用git操作gitlab的項(xiàng)目的時(shí)候就不用輸入密碼了!
在終端里輸入如下命令創(chuàng)建ed25519類(lèi)型的密鑰!
ssh-keygen.exe -t ed25519 -b 4096
把公鑰內(nèi)容復(fù)制出來(lái)。
cat /c/Users/tongfu/.ssh/id_ed25519.pub
把公鑰添加到gitlab的SSH密鑰里(這個(gè)上一節(jié)有講,不會(huì)的童鞋可以翻回去看看)。
添加好了~
現(xiàn)在有三個(gè)SSH密鑰了,一個(gè)是TFCentOS7x64服務(wù)器的,一個(gè)是TFCentOS7x64Node1服務(wù)器的,還有一個(gè)是福哥的Windows10的。
3.4 配置config
用來(lái)配置git相關(guān)參數(shù),必須要設(shè)置的就是用戶(hù)名稱(chēng)和用戶(hù)email。
git config --global user.email "git-client@tongfu.net"
git config --global user.name "git client"
3.5 克隆Clone
克隆就是把git服務(wù)器上面的一個(gè)項(xiàng)目的全部文件都復(fù)制一份到自己的電腦上面的操作.
現(xiàn)在福哥要把tfphp項(xiàng)目克隆一份到Windows10的桌面上,在Bash里面輸入命令克隆tfphp項(xiàng)目。
git clone ssh://git@192.168.168.68:1022/root/tfphp.git
3.6 拉取Pull/Fetch
拉取就是從git服務(wù)器上下載項(xiàng)目最新的文件覆蓋到本地項(xiàng)目里的操作。
無(wú)論是pull還是fetch都要在項(xiàng)目根目錄操作才行,所以福哥要先切換到tfphp項(xiàng)目根目錄下面。
cd tfphp/
ls
3.6.1 Pull
使用pull拉取最新的文件,如果遇到了沖突則會(huì)自動(dòng)合并代碼,合并不了就會(huì)提示要求人工操作。
git pull
3.6.2 Fetch
使用fetch拉取最新的文件,如果遇到了沖突就會(huì)提示要求人工操作。
git fetch
3.7 添加Add
命令add用來(lái)將需要提交到項(xiàng)目里面的新增文件或者改動(dòng)文件加入到待提交隊(duì)列,理論上git可以將任何文件存入項(xiàng)目里面。
福哥在tfphp項(xiàng)目的html目錄下面創(chuàng)建了一個(gè)htm文件,一個(gè)css文件和一個(gè)js文件。
使用add命令將css、js目錄和test.htm網(wǎng)頁(yè)添加到tfphp項(xiàng)目里。
git add html/css/
git add html/js/
git add html/test.htm
使用status命令查看有哪些文件有變化。
git status
3.8 提交Commit
命令commit用來(lái)將add命令添加的待提交隊(duì)列的內(nèi)容提交到本地項(xiàng)目里。commit命令可以將一個(gè)階段的改動(dòng)內(nèi)容存成一個(gè)版本,這個(gè)版本就是項(xiàng)目的一個(gè)版本。
git commit -m "添加了test.htm網(wǎng)頁(yè)和相關(guān)資源"
3.9 日志Log
福哥剛剛提交了一個(gè)版本到項(xiàng)目tfphp,那么項(xiàng)目tfphp里面有多少版本呢?怎么查看呢?
git log -v
3.10 撤銷(xiāo)Revert
命令revert用來(lái)將某一次的提交所作的修改撤銷(xiāo)掉。如果撤銷(xiāo)會(huì)造成沖突則需要人工參與合并操作。
福哥使用revert命令把剛剛的提交給撤銷(xiāo)回來(lái)。撤銷(xiāo)操作需要commit ID,可以通過(guò)log命令查看。
git revert 4fb8ed332084d6787f3b8dc13f63240168b3eba0
撤銷(xiāo)操作還需要提供提交信息,這是默認(rèn)的提交信息,可以不修改直接“:wq”保存退出。
保存退出后撤銷(xiāo)操作就完成了。
再次查看日志,可以看到剛剛所作的revert撤銷(xiāo)操作。
3.11 重置Reset
命令reset也是用來(lái)將某一次的提交所作的修改撤銷(xiāo)掉。
reset和revert的區(qū)別在于,如果目標(biāo)版本是一個(gè)歷史版本,那么reset會(huì)把目標(biāo)版本之后的全部版本清除掉,而revert則會(huì)保留這些版本信息。
為了測(cè)試這個(gè),福哥就創(chuàng)建了幾個(gè)改動(dòng)。
git add html/test.htm
git commit -m "add test.htm"
git add html/css/test.css
git commit -m "add test.css"
git add html/js/test.js
git commit -m "add test.js"
現(xiàn)在有了三個(gè)提交記錄,也就是三個(gè)版本。
福哥要reset到“add test.htm”這個(gè)版本,也就是說(shuō)后面的兩個(gè)版本也會(huì)被撤銷(xiāo)掉,而且commit記錄也會(huì)被丟掉。
git reset 9562550c95b0819fb3536b2f0068588c9722d58e --hard
可以看到test.css和test.js都沒(méi)了,連目錄也沒(méi)有了。
相關(guān)的commit信息也沒(méi)了。
3.12 推送Push
剛剛的所有改動(dòng)都只是在Windows10上面完成的,gitlab服務(wù)器上還是沒(méi)有變化的,要想同步到gitlab服務(wù)器上面就需要用到push命令了。
福哥現(xiàn)在使用push命令把剛剛所做的所有改動(dòng)都推送到遠(yuǎn)程的gitlab上面去。
git push
再去gitlab上面看看變化,可以發(fā)現(xiàn)html目錄有了“add test.htm”這個(gè)版本信息了。
3.13 分支Branch
分支是git非常重要的功能之一,每一個(gè)開(kāi)發(fā)人員每天都離不開(kāi)對(duì)項(xiàng)目分支的操作。
分支可以理解為項(xiàng)目的一次任務(wù),每當(dāng)項(xiàng)目有一次改動(dòng)任務(wù)的時(shí)候都應(yīng)該從主分支master上面切出來(lái)一個(gè)分支,然后在這個(gè)切出來(lái)的分支上面進(jìn)行修改,修改完畢后再把這個(gè)分支和主分支master進(jìn)行合并。這樣做可以最大限度地保證主分支master的穩(wěn)定,還可以避免多人協(xié)同工作時(shí)候產(chǎn)生的沖突問(wèn)題。
分支除了用來(lái)協(xié)同工作之外,也可以作為一個(gè)支線(xiàn)版本來(lái)使用。比如我們的某個(gè)客戶(hù)想要定制一些功能,這些功能不方便合并到主分支master上面,這個(gè)時(shí)候就可以為客戶(hù)單獨(dú)開(kāi)辟一個(gè)持久的分支,專(zhuān)門(mén)為這個(gè)客戶(hù)進(jìn)行升級(jí)。
分支還可以用來(lái)實(shí)現(xiàn)持續(xù)集成,就是說(shuō)可以設(shè)計(jì)一個(gè)流水線(xiàn),當(dāng)某個(gè)分支被合并后就自動(dòng)觸發(fā)構(gòu)建任務(wù),自動(dòng)重新部署遠(yuǎn)程服務(wù)。
3.13.1 查看分支
查看有哪些分支,當(dāng)前處在哪個(gè)分支下。
git branch
3.13.2 創(chuàng)建分支
因?yàn)楫?dāng)前是master分支,所以我們是基于master分支創(chuàng)建tfdev230927分支。
git branch tfdev230927
git branch
3.13.3 切換分支
新分支有了但是當(dāng)前還是master分支,切換到tfdev230927分支。
git switch tfdev230927
git branch
3.13.4 合并分支
先切換到master分支,然后將tfdev230927分支合并到master分支。
因?yàn)槲覀冊(cè)趖fdev230927分支什么都沒(méi)改,所以也沒(méi)有什么可合并的內(nèi)容。
git switch master
git merge tfdev230927 --squash
3.13.5 刪除分支
任務(wù)做完了,現(xiàn)在可以刪除tfdev230927分支了。
刪除之前先切到其他分支上,當(dāng)前是不能刪除的。
git switch master
git branch --delete tfdev230927
git branch
3.13.6 提交分支
我們創(chuàng)建的分支其實(shí)只是在本地,如果要保存到git服務(wù)器上,還需要使用push命令提交上去。
首次提交分支到git服務(wù)器需要--set-upstream參數(shù),后面就不用了。
福哥先創(chuàng)建了一個(gè)新的分支tfdev230927b,再把它提交上去。
git branch tfdev230927b
git push --set-upstream origin tfdev230927b
去到gitlab上面可以看到剛剛創(chuàng)建的分支tfdev230927b。
3.13.7 刪除遠(yuǎn)程分支
如何刪除git服務(wù)器上的分支?還是使用push命令。
福哥現(xiàn)在把剛剛提交到git服務(wù)器上的分支tfdev230927b刪除掉。
git push origin -d tfdev230927b
去到gitlab上看一下,tfdev230927b分支也沒(méi)有了。
注意:刪除遠(yuǎn)程分支不代表本地分支也會(huì)被刪除!!!
3.14 標(biāo)簽Tag
標(biāo)簽顧名思義就是給項(xiàng)目打一個(gè)版本號(hào),這個(gè)版本基于某一次的commit版本。大多數(shù)的情況下標(biāo)簽是用來(lái)標(biāo)志著項(xiàng)目的發(fā)行版本。通常用來(lái)完成持續(xù)集成,每次給項(xiàng)目打一個(gè)標(biāo)簽就會(huì)觸發(fā)自動(dòng)構(gòu)建,自動(dòng)完成遠(yuǎn)程服務(wù)的重構(gòu)。
3.14.1 查看標(biāo)簽
現(xiàn)在還沒(méi)有任何標(biāo)簽。
git tag
3.14.2 創(chuàng)建標(biāo)簽
創(chuàng)建一個(gè)標(biāo)簽v1.0.0。
git tag v1.0.0
git tag
3.14.3 刪除標(biāo)簽
刪除這個(gè)標(biāo)簽。
git tag --delete v1.0.0
git tag
3.14.4 提交標(biāo)簽
提交標(biāo)簽和提交分支語(yǔ)法類(lèi)似。
git tag v1.0.1
git tag
git push origin v1.0.1
去到gitlab上面看一看,在標(biāo)簽里面可以看到剛剛提交的v1.0.1標(biāo)簽。
提交所有標(biāo)簽可以使用這個(gè)命令。再參創(chuàng)建兩個(gè)標(biāo)簽v1.0.2和v1.0.3,一起提交上去。
git tag v1.0.2
git tag v1.0.3
git tag
git push origin --tags
3.14.5 刪除遠(yuǎn)程標(biāo)簽
刪除遠(yuǎn)程標(biāo)簽和刪除遠(yuǎn)程分支語(yǔ)法也差不多。
git push origin -d v1.0.1
去到gitlab上面看一下,標(biāo)簽里面已經(jīng)沒(méi)有v1.0.1這個(gè)標(biāo)簽了。
注意:刪除遠(yuǎn)程標(biāo)簽不代表本地標(biāo)簽也會(huì)被刪除!!!
3.15 分支和標(biāo)簽重名
看到這里大家可能會(huì)想,既然分支和標(biāo)簽推送到git服務(wù)器的語(yǔ)法是一樣的,那么如果分支和標(biāo)簽有重名的情況的話(huà),推送到git服務(wù)器的是分支還是標(biāo)簽?zāi)兀?/span>
這個(gè)問(wèn)題福哥幫大家試驗(yàn)了一下,會(huì)有報(bào)錯(cuò)的~
git branch v1.0.3
git branch
git push origin v1.0.3
git branch --delete v1.0.3
反過(guò)來(lái)也是不行的!
git tag tfdev230927b
git tag
git push origin tfdev230927b
git tag --delete tfdev230927b
今天我們學(xué)習(xí)了在Windows上安裝Git客戶(hù)端,已經(jīng)使用Git客戶(hù)端操作項(xiàng)目文件的的各種操作的方法。其實(shí)除了這種命令行方式的Git客戶(hù)端之外,還有很多圖形化的Git客戶(hù)端軟件,使用圖形化的Git客戶(hù)端可以更加高效地管理我們的git項(xiàng)目,管理我們的服務(wù)。
后面福哥會(huì)給大家講解如何使用小烏龜Git(TortoiseGit)圖形化Git客戶(hù)端來(lái)管理我們的git項(xiàng)目,敬請(qǐng)期待~
https://m.tongfu.net/home/35/blog/514016.html
1. git環(huán)境安裝
首先現(xiàn)在GitHub下載git的Windows版本,默認(rèn)安裝即可。
地址:https://git-scm.com/downloads
git下載
2. 在GitHub上注冊(cè)一個(gè)賬號(hào)
需要有效的郵箱
github注冊(cè)
3. 配置文件
(1) 在administrator目錄下默認(rèn)沒(méi)有.gitconfig文件,只有在用git命令配置后,才會(huì)產(chǎn)生.gitconfig文件。
(2) 在git安裝目錄下/etc/gitconfig文件有默認(rèn)的配置文件
就是說(shuō)有兩個(gè)配置文件,一個(gè)是.gitconfig,另 一個(gè)是/etc/gitconfig文件
gitconfig配置文件1
gitconfig配置文件2
4. 配置命令
(1) 在開(kāi)始菜單中打開(kāi)git bash
(2) 常用命令
配置賬戶(hù)信息
查看賬戶(hù)信息
查看git版本
5. 在github網(wǎng)站上建立新倉(cāng)庫(kù)
注意不要有readme,然后在網(wǎng)站中添加ssh密碼
6. 克隆工程
從github上下載工程命令
git clone https://github.com/test@ruoob.com/myfile002.git
7. 第一次向Github添加工程
(1) 進(jìn)入工程文件夾
(2) Git add .
(3) Git commit -m "版本號(hào)"
(4) GIT PUSH origin master
8. 以后每次提交新分支
(1) 建立新分支并進(jìn)入新分支 git checkout -b v3
(5) Git add .
(6) Git commit -m "版本號(hào)"
(2) GIT push origin v3
9. 撤銷(xiāo)
git reset -- soft HEAD^
10. 查詢(xún)和刪除遠(yuǎn)程綁定
git remote -v
git remote rm origin
git remote add origin <你的項(xiàng)目地址> //注:項(xiàng)目地址形式為:https://gitee.com/xxx/xxx.git或者 git@gitee.com:xxx/xxx.git
一個(gè)目錄只能綁定一個(gè)倉(cāng)庫(kù),如果要換就把前面的刪除
11. 基本思路
(1) 本地建立一個(gè)文件夾,然后用init名稱(chēng)變?yōu)閭}(cāng)庫(kù),然后利用add命令添加修改,用commit命令添加提交。但是這些命令都是本地起作用
(2) 第一次遠(yuǎn)程連接倉(cāng)庫(kù),建立一個(gè)倉(cāng)庫(kù),然后利用add命令本地的倉(cāng)庫(kù)和遠(yuǎn)程關(guān)聯(lián)。然后利用push命令提交到遠(yuǎn)程。
(3) 以后再操作,本地就是add和commit,然后用push遠(yuǎn)程存儲(chǔ)。
(4) 如果是克隆,就clone就可以了。直接就下載了。
查詢(xún)命令,git status, git remote -v
友情鏈接: 餐飲加盟
地址:北京市海淀區(qū) 電話(huà):010- 郵箱:@126.com
備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有