今日頭條:加強 MCN 規範運營,不得編造虛假情節 / 刷量控評
1-版本控制系統概述
1.1 開發中的實際場景
場景一:程式碼備份
Curry
負責的模組就要完成了,就在即將釋出之前的一瞬間,電腦突然藍屏,硬碟光榮犧牲!幾個月來的努力付之東流。
場景二:程式碼還原【版本控制】
這個專案中需要一個很複雜的功能,小明摸索了一個星期!終於有了眉目,可是這被改得面目全非的程式碼,已經回不到從前了。
場景三:協同開發
碼農A
和碼農B
先後從檔案伺服器上下載了同一個檔案:UserDao.java。碼農A
在UserDao.java檔案中的第30行聲明瞭一個方法,叫add()
方法,先儲存到了檔案伺服器上;碼農B
在UserDao.java檔案中的第30行聲明瞭一個方法叫sum()
,也隨後儲存到了檔案伺服器上,於是add()
A
的記憶中了。
場景四:追溯問題程式碼
小明是專案經理,每次因為專案進度捱罵之後,他都不知道該扣哪個程式設計師的工資!就拿這次來說吧,有個Bug
除錯了30多個小時才知道是因為相關屬性沒有在應用初始化時賦值!可是所有人都不承認是自己乾的!!!
開發過程中問題種種,於是版本控制系統從而引出!!!
1.2 版本控制系統
版本控制系統能追蹤專案,從開始到結束的整個過程。對程式設計人員而言,版本控制技術是團隊協作開發的橋樑,助力於多人協作同步進行大型專案開發。軟體版本控制系統的核心任務:查閱專案歷史操作記錄、實現協同開發。
常見的兩種版本控制型別:
1、集中式版本控制工具【SVN
】
集中式版本控制工具,版本倉庫是集中存放在中央伺服器的,團隊裡每個人工作時,從中央伺服器下載程式碼。每個人個人修改後,提交到中央版本倉庫。提交(commit)
2、分散式版本控制工具【Git
】
分散式版本控制系統可以沒有中央伺服器,每個人的電腦上都是一個完整的版本倉庫,這樣工作的時候,不需要聯網。因為版本倉庫就在你自己的電腦上。多人協作只需要各自修改,開發完成即可,推送給對方【聯網】,推送的時候是將整個版本倉庫推過去。
1.3 Git 簡介
1.3.1基本介紹
Git
是一個開源的分散式版本控制系統,可以有效、高速地處理從很小到非常大的專案的版本管理,Git
是 Linus Torvalds
。他是為了幫助管理 Linux
核心開發而開發的一個的版本控制軟體,最後開源了。
- 速度、簡單的設計,對非線性開發模式的強力支援(允許成千上萬個並行開發的分支)。
- 完全分散式,有能力高效管理類似
Linux
核心一樣的超大規模專案(速度和資料量)。
1.3.2 Git工作流程圖
操作:
Clone
:克隆,從遠端倉庫中克隆程式碼到本地倉庫,第一次操作Push
:推送,程式碼完成後,需要和團隊成員共享程式碼時,將程式碼推送到遠端倉庫。Pull
:拉取,從遠端庫拉程式碼到本地庫,自動進行合併(merge)
,最後放到工作區。
操作:
checkout
:將本地倉庫的內容檢出到工作區。add
:在提交前先將程式碼提交到暫存區。commit
:提交到本地倉庫。
1.3.3 基本概念
1、本地倉庫: 在本地主機上的一個程式碼庫,可以獨立存在,也可以與遠端倉庫進行關聯。
- 工作區:對任何檔案的修訂(增刪改),都先放在工作區,工作區不與任何倉庫分支進行關聯。
- 暫存區:把修訂的檔案,從工作區經過add(新增)後與某一個倉庫分支進行關聯,只要進入快取區的檔案才能
commit【提交】
到本地倉庫。
2、遠端倉庫 : 在區域網或網際網路上的一個主機,存放程式碼庫的主機或平臺,比如GitHub、Gitee.com
3、分支:程式碼存放在倉庫,預設是主分支(master)
,可以在主分支基礎上建立很多子分支,比如develop【開發】
、bugfix【bug修復】
等。
2-Git的下載與安裝
2.1 下載與安裝
1、git官網地址:https://git-scm.com/downloads
2.2 軟體安裝
1、Windows平臺安裝
雙擊安裝.exe
檔案,一路Next
使用預設選項即可,雙擊下載的安裝檔案來安裝Git。安裝完成後在電腦桌面(也可以是其他目錄)點選右鍵,如果能夠看
到如下兩個選單則說明Git安裝成功。
2、檢視其版本
3、Linux平臺安裝
下載地址:https://github.com/git/git/releases/tag/v2.34.1
4、 安裝依賴環境
## 1、安裝依賴環境
[root@k8s-jenkinsagent01 opt]# yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
已載入外掛:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* elrepo: mirror-hk.koddos.net
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
elrepo | 3.0 kB 00:00:00
作為依賴被安裝:
gdbm-devel.x86_64 0:1.10-8.el7 gettext-common-devel.noarch 0:0.19.8.1-3.el7
git.x86_64 0:1.8.3.1-23.el7_8 keyutils-libs-devel.x86_64 0:1.5.8-3.el7
pyparsing.noarch 0:1.5.6-9.el7 rsync.x86_64 0:3.1.2-10.el7
systemtap-sdt-devel.x86_64 0:4.0-13.el7
完畢!
[root@k8s-jenkinsagent01 opt]# git --version
git version 1.8.3.1
# 2、刪除yum方式安裝的git
[root@k8s-jenkinsagent01 opt]# yum -y remove git
已載入外掛:fastestmirror
正在解決依賴關係
--> 正在檢查事務
---> 軟體包 git.x86_64.0.1.8.3.1-23.el7_8 將被 刪除
--> 正在處理依賴關係 git = 1.8.3.1-23.el7_8,它被軟體包 perl-Git-1.8.3.1-23.el7_8.noarch 需要
--> 正在處理依賴關係 git,它被軟體包 gettext-devel-0.19.8.1-3.el7.x86_64 需要
刪除:
git.x86_64 0:1.8.3.1-23.el7_8
作為依賴被刪除:
gettext-devel.x86_64 0:0.19.8.1-3.el7 perl-Git.noarch 0:1.8.3.1-23.el7_8
完畢!
[root@k8s-jenkinsagent01 opt]# git --version
-bash: /usr/bin/git: 沒有那個檔案或目錄
## 3、解壓操作
[root@k8s-jenkinsagent01 opt]# tar -zxvf git-2.28.0.tar.gz
[root@k8s-jenkinsagent01 opt]# ls
apache-maven-3.6.3-bin.tar.gz containerd git-2.28.0.tar.gz jdk-8u261-linux-x64.tar.gz
cni git-2.28.0 jdk1.8.0_261 maven
[root@k8s-jenkinsagent01 opt]# cd git-2.28.0/
## 4、配置git安裝路徑
[root@k8s-jenkinsagent01 git-2.28.0]# ./configure --prefix=/opt/git/
checking for library containing getdelim... none required
checking for BSD sysctl... no
checking for POSIX Threads with ''... no
checking for POSIX Threads with '-mt'... no
checking for POSIX Threads with '-pthread'... yes
configure: creating ./config.status
config.status: creating config.mak.autogen
config.status: executing config.mak.autogen commands
## 5、編譯並且安裝
[root@k8s-jenkinsagent01 git-2.28.0]# make && make install
[root@k8s-jenkinsagent01 opt]# ls
apache-maven-3.6.3-bin.tar.gz containerd git-2.28.0 jdk1.8.0_261 maven
cni git git-2.28.0.tar.gz jdk-8u261-linux-x64.tar.gz
# 6、配置操作
[root@k8s-jenkinsagent01 opt]# vim /etc/profile
umask 022
fi
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
unset i
unset -f pathmunge
export PATH
export JAVA_HOME=/opt/jdk1.8.0_261
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export MAVEN_HOME=/opt/maven
export PATH=$MAVEN_HOME/bin:$PATH
export PATH=$PATH:/opt/git/bin
[root@k8s-jenkinsagent01 opt]# source /etc/profile
[root@k8s-jenkinsagent01 opt]# git --version
git version 2.28.0
[root@k8s-jenkinsagent01 opt]#
3-Git基本配置
3.1 基本配置
1、安裝完成Git
後,正式使用git
前,是需要進行一些全域性設定【使用者簽名】,如使用者名稱、郵箱。
設定的主要命令是:git config
# 設定全域性使用者名稱
git config --global user.name "your name"
# 設定郵箱
git config --global user.email "your email"
其中,--global
指定為全域性配置,不使用該引數,則為當前所在倉庫配置。
通過上面的命令設定的資訊會儲存在.gitconfig
檔案中
2、檢視配置資訊
-- 檢視命令
git config --list
3.2 構建本地倉庫
3.2.1 初始化本地Git倉庫
1、具體步驟
- 在電腦的工作區建立一個空目錄(例如
GitDemo
)作為本地Git
倉庫。 - 進入這個目錄中,點選右鍵開啟
Git bash
視窗,執行git init
命令。
如果在當前目錄中看到.git
資料夾(此資料夾為隱藏資料夾)則說明Git
倉庫建立成功【初始化成功!!!】
3.3 本地倉庫操作
3.3.1檢視當前檔案狀態
1、具體命令
#命令形式
git status [-s]
3.3.2將檔案新增暫存區
要將一個檔案納入到版本庫管理,首先要將其新增到暫存區,然後才能提交到倉庫中。將檔案新增到暫存區,使用的是:git add
命令
# 新增單個檔案到暫存區
git add hello.java
# 將當前目錄下所有修改新增到暫存區,除按照規則忽略的之外
git add .
3.3.3 提交本地庫
1、將暫存區中的檔案,提交到倉庫中。
# 如果暫存區有檔案,則將其中的檔案提交到倉庫
git commit
# 帶評論提交,用於說明提交內容、變更、作用等
git commit -m 'your comments'
2、修改檔案
3.3.4 檢視提交歷史記錄
有的時候,是會需要檢視自己做過哪些提交,來回顧自己完成的部分。或者需要尋找某個具體的提交來檢視當時的程式碼,這裡需要用到:
# 檢視當前版本資訊
git reflog
# 顯示所有提交的歷史記錄
git log
3.3.5 版本回退
有了git log
來檢視提交的歷史記錄,就可以通過 git reset --hard
來回退到需要的特定版本,然後使用當時的程式碼進行各種操作。
# 退到 commit_id 指定的提交版本
git reset --hard 'commit_id'
3.3.6 刪除檔案
在檔案未新增到暫存區之前,對想刪除檔案可以直接物理刪除。如果檔案已經被提交,則需要使用命令:git rm
# 刪除已經被提交過的檔案git rm xxx.xx
4-Git分支管理
1、什麼分支
在版本控制過程中,同時推進多個任務,為每個任務,我們就可以建立每個任務的單獨分支。使用分支意味著程式設計師可以把自己的工作從開發主線上分離開來,開發自己分支的時候,不會影響主線分支的執行。對於初學者而言,分支可以簡單理解為副本,一個分支就是一個單獨的副本。(分支底層其實也是指標的引用)
2、分支的好處
同時並行推進多個功能開發,提高開發效率。各個分支在開發過程中,如果某一個分支開發失敗,不會對其他分支有任何影響。失敗的分支刪除重新開始即可。
3、分支管理介紹
幾乎所有的版本控制系統都以某種形式支援分支,使用分支意味著可以把工作從開發主線上分離開來進行Bug
修改、開發新的功能,以免影響開發主線。
在開發中,一般以下分支使用流程:
4.1 檢視分支
檢視分支使用命令:git branch
# 檢視本地分支資訊git branch # 檢視相對詳細的本地分支資訊git branch -v # 檢視包括遠端倉庫在內的分支資訊git branch -av
在git branch
的輸出內容中,有一個分支,前面帶有 *
號,這標識當前所在的分支
4.2 建立分支
當要修復一個Bug
,或者開發一個新特性,甚至是在初學的時候怕打亂原來的程式碼,都可以新建一個分支來避免對原來程式碼的影響。
# 新建一個名稱為hot-fox的分支git branch hot-fix
4.3 切換分支
1、基本實現
當建立完分支以後,需要切換到新建的分支,否則,所有的修改,還是在原來的分支上。事實上,所有的改動只能影響到當前所在的分支。
# 新建完hot-fox分支以後,通過該命令切換到hot-fox分支git checkout hot-fix
2、建立並切換分支
這個命令合併了前兩個獨立的命令,平常使用中一般這樣使用。
# 新建dev分支,並切換到該分支上git checkout -b hot-fix
4.4 修改分支
1、在分支【hot-fix】上修改檔案,然後提交到本地庫。
4.5 合併分支
4.5.1 正常合併
當修復完成一個Bug
,或者開發完成一個新特性,我們就會把相關的Bug
或者 特性的上修改合併,回原來的主分支上,這時候就需要使用:git merge
來做分支的合併。首先需要切換回最終要合併到的分支,如master
分支
# 切換回 master 分支git checkout master
# 將hot-fix分支中的修改合併回master 分支git merge hot-fix
4.5.2 分支合併衝突
1、衝突產生的表現
後面狀態為 MERGING
2、衝突產生的原因
合併分支時,兩個分支在 同一個檔案的同一個位置有兩套完全不同的修改。Git
無法替我們決定使用哪一個,必須 人為決定新程式碼內容。
手動的開啟檔案,然後刪除非必要的檔案
然後新增到暫存區,然後在提交到本地庫。【此時使用 git commit 命令時 不能帶檔名】
4.6刪除分支
當之前建立的分支,完成了它的使命,如Bug
修復完,分支合併以後,這個分支就不在需要了,就可以刪除它。
5-Git遠端倉庫
5.1 註冊GitHub
1、基本介紹
現在我們已經在本地建立了一個Git倉庫,又想讓其他人來協作開發,此時就可以把本地倉庫同步到遠端倉庫,同時還增加了本地倉庫的一個備份。那麼如何搭建Git
遠端倉庫呢?可以藉助網際網路上提供的一些程式碼託管服務平臺來實現,其中比較常用的有GitHub
、碼雲等。
GitHub【地址:https://github.com/】是一個面向開源及私有軟體專案的託管平臺,因為只支援Git
作為唯一的版本倉庫格式進行託管,故名GitHub
。
碼雲【地址:https://gitee.com/】是國內的一個程式碼託管平臺,由於伺服器在國內,所以相比於GitHub,碼雲速度會更快。
2、登入網址,點選sign up
註冊賬號
3、填寫資訊,注意郵箱要真實有效
4、輸入驗證碼,註冊成功
5、github登入成功!!!
5.3 建立刪除遠端倉庫
5.3.1 建立遠端倉庫
1、點選New repository
操作
2、點選create repository
按鈕倉庫就建立成功了。
5.3.2 刪除遠端倉庫
1、選擇要刪除的專案,點選settings
2、開啟頁面,直接拉到最後面,可以看到按鈕Delete this repository
3、最後直接輸入專案名稱,點選刪除
4、刪除成功
5.4 GitHub操作
1、建立3個GitHub
賬號,然後將三個賬號為一組,進行團隊協作。
賬號 | 姓名 | 驗證郵箱 |
---|---|---|
xiaowangcoding |
小王 | [email protected] |
xiaomingcoding |
小明 | [email protected] |
guardwhy |
小禾 | [email protected] |
2、Git
相關命令
命令名稱 | 作用 |
---|---|
git remote -v |
檢視當前所有遠端地址別名 |
git remote add 別名 遠端地址 |
起別名 |
git push 別名 分支 |
推送本地分支上的內容到遠端倉庫 |
git clone 遠端地址 |
將遠端倉庫的內容克隆到本地 |
git pull 遠端庫地址別名 遠端分支名 |
將遠端倉庫對於分支最新內容拉下來後與 當前本地分支直接合並 |
5.4.1 建立遠端倉庫別名
1、基本語法
git remote -v #檢視當前所有遠端地址別名git remote add 別名
建立別名要拿到遠端倉庫後生成的連線。
2、案例實操
5.4.2 推送本地庫到遠端倉庫
1、基本語法
git push 別名
2、案例實操
3、檢視遠端的倉庫,推送成功
5.4.3 克隆遠端倉庫到本地
1、基本語法
git clone 遠端地址
2、案例實操
3、克隆成功
5.4.4 免密登入
Github
支援兩種同步方https
和ssh
。如果使用https很簡單基本不需要配置就可以使用,但是每次提交程式碼和下載程式碼時都需要輸入使用者名稱和密碼。而且如果是公司配置的私有git
伺服器一般不提供https
方式訪問,所以我們要來著重演示ssh
方式。
開啟遠端倉庫,可以看到遠端倉庫中還有一個SSH
的地址,因此也可以使用SSH
進行訪問。
1、什麼是ssh協議
SSH是英文Secure Shell的簡寫形式。通過使用SSH,你可以把所有傳輸的資料進行加密,這樣"中間人"這種攻擊方式就不可能實現了,而且也能夠防止DNS欺騙和IP欺騙。使用SSH,還有一個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。使用SSH同步方式需要先生成金鑰並在GitHub配置公鑰。
2、ssh金鑰生成
先找到.ssh
的資料夾然後刪除,開啟git bash
重新生成新的公鑰和私鑰。
執行以下命令
ssh-keygen -t rsa -C [email protected]
進入.ssh
目錄檢視檔案列表,拿到公鑰【Linux進入/.ssh
檢視公鑰】
複製 id_rsa.pub
檔案內容,登入 GitHub
,點選使用者頭像→Settings
→SSH and GPG keys
將公鑰複製到此處
新增完成!!!
接下來再往遠端倉庫clone
東西的時候使用SSH
連線就不需要登入了。
5.5 團隊內協作
1、團隊協作流程
2、選擇邀請合作者
3、填入需要合作的人碼農小王
4、複製地址並通過微信釘釘等方式傳送給該使用者
https://github.com/guardwhy/gitdemo/invitations
5、在xiaowangcoding
這個賬號中的位址列複製收到邀請的連結,點選接受邀請。
6、在 成功之後可以在xiaowangcoding
這個賬號上看到 gitdemo
的遠端倉庫。
7、碼農小王可以修改內容並push
到遠端倉庫。
推送成功!!!小禾將修改後的功能拉取到本地庫,更新本地庫!!!
5.6 跨團隊協作
1、跨團隊協作流程
2、 將遠端倉庫的地址複製發給邀請跨團隊協作的人,比如【碼農小明】,在小明的GitHub
賬號裡的位址列複製專案的連線
或者直接在小明的GitHub
賬號裡的位址列搜尋該專案
然後點選Fork
將專案叉到小明自己的遠端倉庫。
3、將程式碼Clone
到自己的本地庫進行修改,然後在推送到小明自己的遠端倉庫
檢視遠端庫,修改成功!!!
4、接下來點選上方的pull requests
,並建立一個新的請求。
點選這個按鈕
5、回到小禾GitHub
賬號可以看到有一個Pull request
請求。
6、如果問題不大,稽核通過以後,可以點選Merge pull reque
合併程式碼
再次確認程式碼是否合併!!!
7、開啟小禾GitHub
,發現程式碼修改成功!!!
5.7 登出GitHub賬號
如果你不想使用自己的github
賬號了,github
官網允許你刪除賬號,具體操作步驟為:
1、登入github
網站,網站右上角的頭像,在下拉選單中選擇Settings
【設定】
2、選擇左側選單中的Account
【賬號】
3、點選網站底部的Delete your account
按鈕
4、在彈出的視窗中,在第一個輸入框中輸入github
的使用者名稱或者郵箱,然後在第二個輸入框中輸入delete my account
這句話,最後點選Cancle plan and delete this account
按鈕
刪除之後,會跳轉到github
首頁,再登入一下,就登入不上去了
6-IDEA使用Git
6.1 在Idea中配置Git
6.1.1 安裝Git
安裝好IntelliJ IDEA
後,如果Git
安裝在預設路徑下,那麼idea
會自動找到Git
的位置,如果更改了Git
的安裝位置則需要手動配置下Git
的路徑。選擇File→Settings
開啟設定視窗,找到Version Control
下的Git
選項:
6.1.2 配置 Git忽略檔案
1、建立一個gittest
專案,編寫相關業務程式碼,忽略IDEA的特定檔案。
一般在工作區中,並不是所有檔案都需要納入版本控制的這種不需要進行版本控制的通常都是些自動生成的檔案。比如:idea
工程檔案(springmvc.iml)
、編譯後文件target
、系統上傳的圖片img
。
2、建立忽略規則檔案
在這種情況下,可以在工作目錄中建立一個名為xxxx.ignore
的檔案【建議是 git.ignore
】,列出要忽略的檔案。這個檔案的存放位置原則上在哪裡都可以,為了便於讓~/.gitconfig
檔案引用,建議也放在使用者家目錄下。
# Compiled class file*.class# Log file*.log# BlueJ files*.ctxt# Mobile Tools for Java (J2ME).mtj.tmp/# Package Files #*.jar*.war*.nar*.ear*.zip*.tar.gz*.rar# virtual machine crash logs, seehttp://www.java.com/en/download/help/error_hotspot.xmlhs_err_pid*.classpath.project.settingstarget.idea*.iml
3、在.gitconfig
檔案中引用忽略配置檔案【此檔案在Windows
的家目錄中】
[user] name = guardwhy email = [email protected] [core] excludesfile = C:/Users/linux/git.ignore
6.2 IDEA 基本操作
6.2.1 初始化本地庫
1、選擇要建立Git
本地倉庫的工程,初始化本地庫。
檢視原始碼顏色變紅色,初始化成功!!!
6.2.2 新增到暫存區
右鍵點選專案選擇Git -> Add
將專案新增到暫存區。
檢視原始碼顏色變綠色,新增暫存區成功!!!
6.2.3 提交到本地庫
右鍵點選專案選擇Git -> Commit Directoy
將專案新增到本地庫。
檢視原始碼顏色變黑色,提交本地庫成功!!!
6.2.4 IDEA 檢視版本資訊
1、在 IDEA 的左下角,點選Git
,然後點選 Log 檢視版本。【如果之前程式碼提交到本地庫,再次更新程式碼時,無需提交到暫存區,直接提交到本地庫】
右鍵選擇要切換的版本,然後在選單裡點選Checkout Revision
。
6.3 IDEA 分支管理
6.3.1 建立分支
1、右鍵專案名稱,選擇Git
,在 Repository
裡面,點選 Branches
按鈕。
2、然後點選New Branch
,建立新的分支
3、也可以直接點選下面的master
按鈕建立新的分支
4、建立分支【hot-fix
】並且直接切換到當前分支
5、如果需要切換為主分支,直接點選下面的hot-fix
按鈕,然後選擇checkout
之後,直接切回master
分支
6.3.2 合併分支
6.3.2.1 正常合併
先修改hot-fix
分支上面的程式碼,然後提交到本地庫。
檢視master
分支上程式碼.
站在master
分支上合併hot-fix
分支內容,點選下面master
按鈕,然後選擇hot-fix
分支,最後選擇Merge into Current
如果程式碼沒有衝突,分支直接合併成功,分支合併成功以後,程式碼自動提交,無需手動提交本地庫。最後檢視master
分支上程式碼,合併成功!!!
6.3.2.2 衝突合併
1、如圖所示,如果master
分支和hot-fix
分支都修改了程式碼,在合併分支的時候就會發生衝突
2、現在站在master
分支上合併hot-fix
分支,就會發生程式碼衝突。
3、點選Conflicts
框裡的 Merge
按鈕,進行手動合併程式碼。
4、手動合併完程式碼以後,點選右下角的 Apply
按鈕。
5、程式碼衝突解決,自動提交本地庫。
6.4 IDEA整合GitHub
6.4.1 設定GitHub 賬號
1、先去GitHub 賬戶上獲得token,然後在登入。
2、下面的學習環境許可權作用域拉滿
3、然後點選生成 token。
4、複製紅框中的字串到 idea 中。
5、將token
複製到IDEA,然後點選登入。
6、登入成功!!
6.4.2 分享工程到 GitHub
1、點選介面上端,選擇Git
,在 GitHub
裡面,點選 Share Project on GitHub
按鈕。
2、修改專案的別名
3、點選Share
,來到GitHub
中發現已經幫我們建立好了git-test
的遠端倉庫。
6.4.3 推送本地庫程式碼到遠端庫
1、修改完程式碼,提交到本地庫。
2、將本地庫程式碼推送到遠端庫
方案一
方案二
使用SSH
免密登入,直接推送到遠端庫,
檢視遠端倉庫,推送成功!!!!
3、注意事件
push
是將本地庫程式碼推送到遠端庫,如果本地庫程式碼跟遠端庫程式碼版本不一致,push
的操作是會被拒絕的,要想 push 成功,一定要保證本地庫的版本要比遠端庫的版本高!因此一個成熟的程式設計師在動手改原生代碼之前,一定會先檢查下遠端庫跟原生代碼的區別!如果本地的程式碼版本已經落後,切記要先pull拉取一下遠端庫的程式碼,將原生代碼更新到最新以後,然後再修改,提交,推送!
6.4.4 拉取遠端庫到本地庫
1、修改遠端庫的程式碼
2、右鍵點選專案,可以將遠端倉庫的內容pull
到本地倉庫。
3、選擇免密SSH
4、拉取成功!!注意:pull
是拉取遠端倉庫程式碼到本地,如果遠端庫程式碼和本地庫程式碼不一致,會自動合併,如果自動合併失敗,還會涉及到手動解決衝突的問題。
6.4.5 克隆遠端庫到本地
1、複製遠端端專案的連結
2、開啟IDEA,使用將專案下載下來
3、Clone
下來以後,直接開啟即可。
4、執行專案,Clone
成功!!!!
7-GitLab
7.1 GitLab的簡介
GitLab 是由 GitLabInc.開發,使用 MIT 許可證的基於網路的 Git 倉庫管理工具,且具有wiki 和 issue 跟蹤功能。使用 Git 作為程式碼管理工具,並在此基礎上搭建起來的 web 服務。GitLab 由烏克蘭程式設計師 DmitriyZaporozhets 和 ValerySizov 開發,它使用 Ruby 語言寫成。後來,一些部分用 Go 語言重寫。截止 2018 年 5 月,該公司約有 290 名團隊成員,以及 2000 多名開源貢獻者。GitLab 被 IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX 等組織使用。
7.2 GitLab 官網地址
官網地址:https://about.gitlab.com/
7.3 官方地址文件
官網地址:https://about.gitlab.com/
官網教程:https://docs.gitlab.com/omnibus/docker/
7.4 容器化安裝
1、伺服器準備
準備一個系統為 CentOS7 以上版本的伺服器,要求記憶體 4G,磁碟 50G。關閉防火牆,並且配置好主機名和 IP,保證伺服器可以上網。
使用雲伺服器【該伺服器需要安裝docker
】:主機名:k8s-gitlab01
IP 地址:192.168.50.138
基礎映象準備
## 穩定版docker pull gitlab/gitlab-ce:12.7.6-ce.0## 最新版:不是很穩定的版本docker pull gitlab/gitlab-ce:latest
2、執行容器
[root@k8s-gitlab01 ~]# lsanaconda-ks.cfg[root@k8s-gitlab01 ~]# cd /home/[root@k8s-gitlab01 home]# lsdata[root@k8s-gitlab01 home]# cd data/[root@k8s-gitlab01 data]# ls[root@k8s-gitlab01 data]# docker run -itd --name gitlab -p 443:443 -p 80:80 -p 222:22 --restart always -m 4GB \> -v /home/data/gitlab/config:/etc/gitlab \> -v /home/data/gitlab/logs:/var/log/gitlab \> -v/home/data/gitlab/data:/var/opt/gitlab \> -e TZ=Asia/Shanghai gitlab/gitlab-ce:12.7.6-ce.0f5c0aa3d94d8af053d3bf510b987ea19d0943bc4b03f8c2a6212c82afb259f37[root@k8s-gitlab01 data]#
3、通過IDEA
連線伺服器k8s-gitlab01
修改gitlab.rd
檔案
# 配置專案訪問地址:external_url 'http://192.168.50.138'配置ssh協議所使用的訪問地址和埠gitlab_rails['gitlab_ssh_host'] = '192.168.50.138'gitlab_rails['time_zone'] = 'Asia/Shanghai'gitlab_rails['gitlab_shell_ssh_port'] = 222
4、配置完成後,重新啟動gitlab
,重啟需要2~3分鐘。
docker restart gitlab
7.5 建立使用者組和新建專案
1、瀏覽器訪問連結:http://192.168.50.138,將密碼設定為12345678
。
2、登入gitlab
,使用者名稱預設為root
,第一次登入需要輸入密碼(12345678
)。
3、登入成功,訪問初始頁面!!!
4、點選Grate a group
,建立新的專案組guardwhy_cms
。
7.5.1 建立新專案
1、點選New project
,建立新的專案!!!
2、建立jenkinsdemo01
專案成功。
7.5.2 使用者分配群組
1、點選小齒輪,新建使用者,依次填寫使用者名稱和郵箱
2、建立使用者,新增使用者密碼
3、建立使用者成功!!
4、給新使用者分配許可權,點選左上角的
新增使用者,賦予許可權。
使用者授權成功,檢視具體資訊。
7.6 GitLab上傳專案
1、檢視IDEA
專案中是否存在Git,建立本地倉庫
2、點選IDEA
上的專案,右擊Git
選擇Add
將程式碼加入快取區!!!
3、繼續操作,將程式碼新增到本地倉庫
4、右擊,選擇,在GitLab上獲取連結,將本地工作區程式碼推送到遠端。
5、新增URL
到遠端推送!!!
6、推送成功,檢視GitLab上專案。
8- 碼雲Gitee
8.1 Gitee基本介紹
眾所周知,GitHub
伺服器在國外,使用 GitHub
作為專案託管網站,如果網速不好的話,嚴重影響使用體驗,甚至會出現登入不上的情況。針對這個情況,大家也可以使用國內的專案託管網站-碼雲。碼雲是開源中國推出的基於 Git
的程式碼託管服務中心,網址是 https://gitee.com/ ,使用方式跟GitHub
一樣,而且它還是一箇中文網站,如果你英文不是很好它是最好的選擇。
8.2 碼雲帳號註冊和登入
進入碼雲官網地址:https://gitee.com/
輸入個人資訊,進行註冊即可。
帳號註冊成功以後,直接登入。
登入以後,就可以看到碼雲官網首頁了。
9.3 碼雲建立遠端庫
1、點選首頁右上角的加號,選擇下面的新建倉庫
2、填寫倉庫名稱,路徑和選擇是否開源(共開庫或私有庫),最後根據需求選擇分支模型,然後點選建立按鈕。
3、遠端庫建立好以後,就可以看到https
和ssh
的連結,建議使用【https】
8.4 IDEA 整合碼雲
8.4.1 IDEA 安裝碼雲外掛
1、Idea 預設不帶碼雲外掛,第一步要安裝Gitee
外掛,在Idea
外掛商店搜尋Gitee
,然後點選右側的Install
按鈕。
2、Idea
重啟以後在Version Control
設定裡面看到 Gitee
,說明碼雲外掛安裝成功。
3、然後在碼雲外掛裡面新增碼雲帳號,就可以用IDEA
連線碼雲了。
4、連線Gitee成功
8.4.2 IDEA 連線碼雲
Idea
連線碼雲和連線GitHub
幾乎一樣,首先在Idea
裡面建立一個工程,初始化git
工程,然後將程式碼新增到暫存區,提交到本地庫。
1、將原生代碼 push 到碼雲遠端庫
2、獲取專案的URL
,自定義遠端庫連結。
給遠端庫連結定義個 name,然後再 URL 裡面填入碼雲遠端庫的 HTTPS 連結即可。碼雲伺服器在國內,用 HTTPS 連結即可,沒必要用 SSH 免密連結。
3、然後選擇定義好的遠端連結,點選Push
即可,去碼雲遠端庫檢視程式碼,發現推送成功!!!