網頁設計怎么做網站西安網站建設方案優(yōu)化
第1章Git概述
Git是一個免費的、開源的分布式版本控制系統,可以快速高效地處理從小型到大型的各種項目。
代碼托管中心,記錄每個版本的代碼,從項目創(chuàng)建到現在使用的代碼,中間所有的修改都有記錄。
1. 何為版本控制
版本控制是一種記錄文件內容變化,以便將來查閱特定版本修訂情況的系統。
版本控制其實最重要的是可以記錄文件修改歷史記錄,從而讓用戶能夠查看歷史版本,方便版本切換。
2. 為什么需要版本控制
為了讓多人開發(fā)代碼時,對代碼修改有記錄。如果修改錯了可以及時回滾(人們能夠清楚知道別人對代碼做了什么)
3. 版本控制工具
(1)集中式版本控制工具(CVS、SVN、VSS)
將所有代碼集中存儲在一臺機器上,人們通過連接這臺機器來進行操作代碼。劣勢如果發(fā)生單點故障,整個項目就要停滯。
(2)分布式版本控制工具(git)
客戶提取的不是最新版本的文件快照,而是將代碼倉庫完整的存儲到本地。這樣任何一處協同用的工作發(fā)生故障,事后可以通過其他客戶端的本地倉庫進行恢復。
分布式版本控制解決了集中式版本控制兩個缺陷:
- 服務器斷網情況也可以開發(fā)(版本控制是在本地進行的(修改完成)才推送到服務器)
- 每個客戶端保存的是完整的項目(包含歷史記錄)
4. Git簡史
5 Git工作機制
本地代碼----本地緩存區(qū)----本地庫----服務器dev分支----merge服務器master
6 Git和代碼托管中心
代碼托管中心是基于網絡服務器的遠程代碼倉庫,一般簡單稱為遠程庫。
(1)局域網
gitlab
(2)互聯網
Github(外網)
https://github.com/
Gitee碼云(國內網站)
https://gitee.com/
第2章 Git安裝
安裝包下載官網地址:https://git-scm.com/或https://github.com/git-for-windows/git/releases
?查看GNU協議,可以直接點擊下一步。
選擇Git安裝位置,要求是非中文并且沒有空格的目錄,然后下一步。
Git選項配置,推薦默認設置,然后下一步。
Git安裝目錄名,不用修改,直接點擊下一步。
Git的默認編輯器,建議使用默認的Vim編輯器,然后點擊下一步。
默認分支名設置,選擇讓Git決定,分支名默認為master,下一步。
修改Git的環(huán)境變量,選第一個,不修改環(huán)境變量,只在Git Bash里使用Git。
選擇后臺客戶端連接協議,選默認值OpenSSL,然后下一步。
配置Git文件的行末換行符,Windows使用CRLF,Linux使用LF,選擇第一個自動轉換,然后繼續(xù)下一步。
選擇Git終端類型,選擇默認的Git Bash終端,然后繼續(xù)下一步。
選擇Git pull合并的模式,選擇默認,然后下一步。
選擇Git的憑據管理器,選擇默認的跨平臺的憑據管理器,然后下一步。
其他配置,選擇默認設置,然后下一步。
實驗室功能,技術還不成熟,有已知的bug,不要勾選,然后點擊右下角的Install按鈕,開始安裝Git。
點擊Finsh按鈕,Git安裝成功!
右鍵任意位置(win11顯示更多選項),在右鍵菜單里選擇Git Bash Here即可打開Git Bash命令行終端。
在Git Bash終端里輸入git --version查看git版本,如圖所示,說明Git安裝成功。
第3章 Git常用命令
命令名稱 | 作用 |
---|---|
git config --global user.name 用戶名 | 設置用戶簽名 |
git config --global user.email 郵箱 | 設置用戶郵箱 |
git init | 初始化本地庫 |
git status | 查看本地庫狀態(tài) |
git add 文件名 | 添加到暫存區(qū) |
git commit -m "日志信息" 文件名 | 提交到本地庫 |
git reflog | 查看歷史記錄 |
git reset --hard 版本號 | 版本穿梭 |
git branch -a | ?查看所有分支 |
git checkout branch_name:切換到已存在的分支
git checkout -b new_branch_name:切換到已經存在的分支之前創(chuàng)建一個新的本地分支
git checkout -b local_branch_name origin/remote_branch_name:切換到遠程分支
案例實操
1、全局范圍的簽名設置
git config --global user.name lishaoxing
git config --global user.email lishaoxing@163.com
git config --list??????????????? # 查看全局配置
cat ~/.gitconfig?????????????? # cat linux中查看文本的命令? ~ 家 [你當前用戶的家]/ .gitconfig
Notes:
簽名的作用是區(qū)分不同操作者身份。用戶的簽名信息在每一個版本的提交信息中能夠看到,以此確認本次提交是誰做的。Git首次安裝必須設置一下用戶簽名,否則無法提交代碼?!究梢栽趃itconfig文件中更改】
※注意:這里設置用戶簽名和將來登錄GitHub(或其他代碼托管中心)的賬號沒有任何關系。
2、初始化本地庫
結果出現.git隱藏文件,就說明該文件夾被git管理。
?3、查看本地庫狀態(tài)
(1)首次查看(工作區(qū)沒有文件)
(2)新增文件
(3)再次查看(檢測到未追蹤文件)
4、添加到暫存區(qū)
查看狀態(tài)(檢測到暫存區(qū)有新文件)
5、提交到本地庫
查看狀態(tài)(沒有文件需要提交)
6、修改文件
7、歷史版本
8、版本穿梭
Git切換版本,底層其實是移動的HEAD指針。
第4章 Git客戶端便捷操作
使用命令行操作git相對而言是非常不方便的,查看內容也不是很直觀,所有官方推薦使用Git的GUI 客戶端來完成頁面化操作。
GitHub
GitHub下載鏈接:https://desktop.github.com/
1、登陸上GitHub賬號、創(chuàng)建一個新的倉庫
2、創(chuàng)建倉庫
3、GitHub客戶端登陸git賬號
4、克隆項目到本地(本地文件夾要為空)
5、修改后的項目提交的github
Gitee
GitHub的網站有時候會連接不上,無法登錄??梢允褂冒⒗锾峁┑腉it遠程倉庫網站Gitee來代替。
首先也是登錄Gitee官網注冊賬號并登錄
1、創(chuàng)建一個項目
2、使用github軟件克隆(類似GitHub操作,知識換成URL,URL一定具體到倉庫)
2、輸入gitee的賬號密碼
3、克隆完成后后續(xù)就和上邊一樣了。
第5章 GitLab的部署與使用
1.為什么使用GitLab-開發(fā)運維一體化
使用git,還需要一個遠程代碼倉庫。常見的github、gitee這種遠程代碼倉庫,公司中一般不會使用,因為他們是使用外網的,不夠安全。一般企業(yè)都會搭建一個僅內網使用的遠程代碼倉庫,最常見就是 GitLab。
2. 部署安裝GitLab
安裝包文件下載地址:https://pan.baidu.com/s/1fBia_Jt3wLsGO_zeJnnqHw?pwd=6666
2.1 安裝部署
1)需要開啟ssh:(已開啟可跳過)
sudo systemctl status sshd
sudo systemctl enable sshd
sudo systemctl start sshd
2)防火墻開放http、https服務:(已關閉防火墻可跳過)
sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
2.1.2 rpm 包安裝
1)上傳安裝包
下載地址:https://packages.gitlab.cn/#browse/search/
安裝包較大,建議下載好手動上傳服務器。這里上傳到/opt/software
2)編寫安裝腳本
cd ~/bin
vim gitlab-install.sh
腳本內容如下:
sudo yum install -y curl policycoreutils-python openssh-server perl
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
sudo rpm -ivh gitlab-jh-16.6.1-jh.0.el7.x86_64.rpm
sudo yum install -y postfix
sudo systemctl enable postfix
sudo systemctl start postfix
?3)修改腳本執(zhí)行權限并執(zhí)行
chmod +x gitlab-install.sh
sh gitlab-install.sh
4)修改external_url
sudo vim /etc/gitlab/gitlab.rb
在文件中找到external_url,修改為如下內容
external_url 'http://192.168.10.104'
保存退出
5)修改host
sudo vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml.example
找到gitlab.host修改為如下內容
保存退出
修改文件名稱
sudo mv /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml.example /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
?6)重裝需要徹底卸載
1 卸載gitlab
sudo rpm -e gitlab-jh-16.6.1
2 刪除gitlab文件
sudo rm -rf /etc/gitlab
sudo rm -rf /var/opt/gitlab
sudo rm -rf /opt/gitlab
3 重裝如果卡在sudo gitlab-ctl reconfigure配置命令上,可以使用另外一個窗口執(zhí)行
sudo systemctl restart gitlab-runsvdir
2.1.3 執(zhí)行初始化
執(zhí)行過程大概需要3分鐘:
sudo gitlab-ctl reconfigure
2.1.4 啟停命令
sudo gitlab-ctl start
2)停止命令
sudo gitlab-ctl stop
2.1.5 修改 root 密碼
1)訪問Web頁面
直接訪問hostname:192.168.10.104
2)查看root密碼
賬號root,密碼將隨機生成并在 /etc/gitlab/initial_root_password 中保存24 小時:
sudo cat /etc/gitlab/initial_root_password
修改密碼:
2.1.6 設置簡體中文
回到首頁,可以看到變成中文:
3. 使用GitLab完成團隊管理
去到一家公司,應該是已經有了GitLab平臺,運維人員擁有root管理員賬號。而作為一名普通的開發(fā)人員,你的leader和同事都擁有各自的GitLab賬號和不同權限。入職后,你只需要申請開通GitLab賬號和對應權限,不需要你來操作。
3.1創(chuàng)建用戶
為了更符合公司實際,我們假設數據組的leader賬號為tutou,你是lishaoxing。
創(chuàng)建一個leader的賬號:
再申請一個lishaoxing賬號
用戶會收到重置密碼的郵件,也可以由管理員設置:
3.2 創(chuàng)建群組
在gitlab里,可以創(chuàng)建出組、組下的子組。在小公司里可以看見gitlab里邊會創(chuàng)建出后端,大數據等等一系列組。盡量不要使用中文創(chuàng)建組名, 可以在組信息中的備注編寫中文描述以及中文組名, 組內人員名稱也盡量用全拼命名。
對于人員權限以及角色的控制也比較簡單,有如下五種:
Owner:最高權限,誰去創(chuàng)建組,這個組就被誰擁有,它可以開除管理員,但管理員無法操作owner的角色。
Maintainer:(管理員-只是具備sudo權限的用戶)管理員一般是給小組的組長,或者是給產品線的總監(jiān)設定。
Developer:是干活的人,就是寫代碼的程序員,可以進行代碼的上傳以及代碼的下載,不能下載其他的組內的代碼,只能下載它們組的代碼。
Repoter:比如現在有需求,其他組的大牛到我們組過來指導工作,要審視我們的代碼,人家就提出需要一個權限,我不能給它developer因為它會改你代碼,其他組的人不能改我們組的代碼,所以就給一個repoter權限,他只能看,只讀權限。
guest:不用看,匿名,直接去掉。一般出現在從ldap中把離職人員的信息刪掉,再去gitlab查這個人的時候,它就是一個guest用戶(匿名)需要再到gitlab把它刪掉(不刪也沒事)。
下面,我們假設研發(fā)部群組是rdc,下屬后端組、前端組、大數據組等子群組:
1)創(chuàng)建研發(fā)中心群組rdc
2)創(chuàng)建大數據組
在研發(fā)中心組下,再創(chuàng)建一個大數據組(當然,其他還會有后端組、前端組等):
當然,根據公司情況還可以進一步在數據組下面細分子組(比如:離線、實時、湖等),這里我們就不再細分。
將數據組的leader設為bigdata的負責人:
將lishaoxing添加為普通的開發(fā)人員:
現在我們就有一個頂級群組rdc,其下有一個子群組bigdata,組內有管理員tutou,開發(fā)人員lishaoxing。
4.使用IDEA兼容GitLab
1)安裝 GitLab 插件
2)配置 SSH 免密登錄
ssh-keygen -t rsa -C lishaoxing@123.com
到用戶目錄下.ssh查看id_rsa.pub文件
添加到GitLab中:
3)獲取 GitLab 個人令牌
創(chuàng)建后,可以查看和復制生成的token:
4)添加 GitLab 服務
5)修改默認分支的保護策略
第6章 企業(yè)項目構建與開發(fā)分支
1. GitFlow工作流介紹
在項目開發(fā)過程中使用 Git 的方式常見的有:
1.1 集中式工作流
所有修改都提交到 Master 這個分支。比較適合極小團隊或單人維護的項目,不建議使用這種方式。
1.2 功能開發(fā)工作流
功能開發(fā)應該在一個專門的分支,而不是在 master 分支上。適用于小團隊開發(fā)。
1.3 GitFlow工作流
公司中最常用于管理大型項目。為功能開發(fā)、發(fā)布準備和維護設立了獨立的分支,讓發(fā)布迭代過程更流暢。
1.4 Forking工作流
在 GitFlow 基礎上,充分利用了 Git 的 Fork 和 pull request 的功能以達到代碼審核的目的。一般用于跨團隊協作、網上開源項目。
2. 各分支功能介紹
2.1 主干分支 master
主要負責管理正在運行的生產環(huán)境代碼,永遠保持與正在運行的生產環(huán)境完全一致。為了保持穩(wěn)定性一般不會直接在這個分支上修改代碼,都是通過其他分支合并過來的。
2.2 開發(fā)分支 develop
主要負責管理正在開發(fā)過程中的代碼。一般情況下應該是最新的代碼。
2.3 功能分支 feature
為了不影響較短周期的開發(fā)工作,一般把中長期開發(fā)模塊,會從開發(fā)分支中獨立出來。 開發(fā)完成后會合并到開發(fā)分支。
2.4 準生產分支(預發(fā)布分支) release
較大的版本上線前,會從開發(fā)分支中分出準生產分支,進行最后階段的集成測試。該版本上線后,會合并到主干分支。生產環(huán)境運行一段階段較穩(wěn)定后可以視情況刪除。
2.5 bug 修理分支 hotfix
主要負責管理生產環(huán)境下出現的緊急修復的代碼。 從主干分支分出,修復完畢并測試上線后,并回主干分支和開發(fā)分支。并回后,視情況可以刪除該分支。
3. 創(chuàng)建項目與分支管理
3.1 idea與遠程倉庫連接
創(chuàng)建公鑰和私鑰,將公鑰復制到遠程gitlab服務器。
ssh-keygen -t rsa -C gitlab賬號
用文本編輯器將該文件打開,具體路徑如下:
將內容復制到
創(chuàng)建訪問令牌,并將其復制到本地idea。
在本地idea上輸入服務器地址(圖片錯誤了)http://192.168.10.104就行了
這是將本地項目上傳到gitlab(之前沒有該項目)
這是從gitlab服務器上下載項目。
修改文件之后就可以提交了。