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