(1)Git 概述
Git 概述
Git 是一個免費的、開源的分布式版本控制系統(tǒng),可以快速高效地處理從小型到大型的各種項目。
Git 易于學習,占地面積小,性能極快。 它具有廉價的本地庫,方便的暫存區(qū)域和多個工作流分支等特性。其性能優(yōu)于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。
1.1何為版本控制
版本控制是一種記錄文件內(nèi)容變化,以便將來查閱特定版本修訂情況的系統(tǒng)。
版本控制其實最重要的是可以記錄文件修改歷史記錄,從而讓用戶能夠查看歷史版本, 方便版本切換。
1.2為什么需要版本控制
個人開發(fā)過渡到團隊協(xié)作。
1.3版本控制工具
集中式版本控制工具
CVS、SVN(Subversion)、VSS……
集中化的版本控制系統(tǒng)諸如 CVS、SVN 等,都有一個單一的集中管理的服務器,保存所有文件的修訂版本,而協(xié)同工作的人們都通過客戶端連到這臺服務器,取出最新的文件或者提交更新。多年以來,這已成為版本控制系統(tǒng)的標準做法。
這種做法帶來了許多好處,每個人都可以在一定程度上看到項目中的其他人正在做些什么。而管理員也可以輕松掌控每個開發(fā)者的權限,并且管理一個集中化的版本控制系統(tǒng),要遠比在各個客戶端上維護本地數(shù)據(jù)庫來得輕松容易。
事分兩面,有好有壞。這么做顯而易見的缺點是中央服務器的單點故障。如果服務器宕機一小時,那么在這一小時內(nèi),誰都無法提交更新,也就無法協(xié)同工作。
分布式版本控制工具
Git、Mercurial、Bazaar、Darcs……
像 Git 這種分布式版本控制工具,客戶端提取的不是最新版本的文件快照,而是把代碼倉庫完整地鏡像下來(本地庫)。這樣任何一處協(xié)同工作用的文件發(fā)生故障,事后都可以用其他客戶端的本地倉庫進行恢復。因為每個客戶端的每一次文件提取操作,實際上都是一次對整個文件倉庫的完整備份。
分布式的版本控制系統(tǒng)出現(xiàn)之后,解決了集中式版本控制系統(tǒng)的缺陷:
1.服務器斷網(wǎng)的情況下也可以進行開發(fā)(因為版本控制是在本地進行的)
2.每個客戶端保存的也都是整個完整的項目(包含歷史記錄,更加安全)
(2)IDEA 集成 Git
2.1配置 Git 忽略文件
1)Eclipse 特定文件
2)IDEA 特定文件
3)Maven 工程的 target 目錄
問題 1:為什么要忽略他們?
答:與項目的實際功能無關,不參與服務器上部署運行。把它們忽略掉能夠屏蔽 IDE 工具之間的差異。
問題 2:怎么忽略?
1)創(chuàng)建忽略規(guī)則文件xxxx.ignore(前綴名隨便起,建議是 git.ignore)
這個文件的存放位置原則上在哪里都可以,為了便于讓~/.gitconfig 文件引用,建議也放在用戶家目錄下
git.ignore 文件模版內(nèi)容如下:
# 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, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
2)在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目錄中)
[user]
name = Layne
email = Layne@atguigu.com
[core]
excludesfile = C:/Users/asus/git.ignore
注意:這里要使用“正斜線(/)”,不要使用“反斜線(\)
2.2定位 Git 程序
2.3初始化本地庫
選擇要創(chuàng)建Git 本地倉庫的工程。
2.4添加到暫存區(qū)
右鍵點擊項目選擇Git -> Add 將項目添加到暫存區(qū)。
2.5提交到本地庫
2.6切換版本
在 IDEA 的左下角,點擊 Version Control,然后點擊Log 查看版本
右鍵選擇要切換的版本,然后在菜單里點擊Checkout Revision。
2.7創(chuàng)建分支
選擇Git,在Repository 里面,點擊 Branches 按鈕。
在彈出的Git Branches 框里,點擊 New Branch 按鈕。
填寫分支名稱,創(chuàng)建 hot-fix 分支。
然后再 IDEA 的右下角看到 hot-fix,說明分支創(chuàng)建成功,并且當前已經(jīng)切換成 hot-fix 分
支
2.8切換分支
在 IDEA 窗口的右下角,切換到 master 分支。
然后在 IDEA 窗口的右下角看到了 master,說明 master 分支切換成功。
2.9合并分支
在 IDEA 窗口的右下角,將 hot-fix 分支合并到當前master 分支。
如果代碼沒有沖突,分支直接合并成功,分支合并成功以后,代碼自動提交,無需手動提交本地庫。
2.10解決沖突
如圖所示,如果 master 分支和 hot-fix 分支都修改了代碼,在合并分支的時候就會發(fā)生沖突。
我們現(xiàn)在站在 master 分支上合并hot-fix 分支,就會發(fā)生代碼沖突。
點擊Conflicts 框里的 Merge 按鈕,進行手動合并代碼。
手動合并完代碼以后,點擊右下角的 Apply 按鈕。
代碼沖突解決,自動提交本地庫。
(3)IDEA 集成 GitHub
3.1設置 GitHub 賬號
如果出現(xiàn) 401 等情況連接不上的,是因為網(wǎng)絡原因,可以使用以下方式連接:
然后去 GitHub 賬戶上設置 token。
點擊生成token。
復制紅框中的字符串到idea 中。
點擊登錄。
3.2分享工程到 GitHub
來到GitHub 中發(fā)現(xiàn)已經(jīng)幫我們創(chuàng)建好了 gitTest 的遠程倉庫。
3.3push 推送本地庫到遠程庫
右鍵點擊項目,可以將當前分支的內(nèi)容 push 到 GitHub 的遠程倉庫中。
注意:push 是將本地庫代碼推送到遠程庫,如果本地庫代碼跟遠程庫代碼版本不一致, push 的操作是會被拒絕的。也就是說,要想 push 成功,一定要保證本地庫的版本要比遠程庫的版本高!因此一個成熟的程序員在動手改本地代碼之前,一定會先檢查下遠程庫跟本地代碼的區(qū)別!如果本地的代碼版本已經(jīng)落后,切記要先 pull 拉取一下遠程庫的代碼,將本地代碼更新到最新以后,然后再修改,提交,推送!
3.4pull 拉取遠程庫到本地庫
右鍵點擊項目,可以將遠程倉庫的內(nèi)容 pull 到本地倉庫。
注意:pull 是拉取遠端倉庫代碼到本地,如果遠程庫代碼和本地庫代碼不一致,會自動合并,如果自動合并失敗,還會涉及到手動解決沖突的問題。
3.5clone 克隆遠程庫到本地
為 clone 下來的項目創(chuàng)建一個工程,然后點擊 Next。
(4)IDEA集成Gitee
國內(nèi)代碼托管中心-碼云
4.1簡介
眾所周知,GitHub 服務器在國外,使用 GitHub 作為項目托管網(wǎng)站,如果網(wǎng)速不好的話,嚴重影響使用體驗,甚至會出現(xiàn)登錄不上的情況。針對這個情況,大家也可以使用國內(nèi)的項目托管網(wǎng)站-碼云。
碼云是開源中國推出的基于 Git 的代碼托管服務中心,網(wǎng)址是 https://gitee.com/ ,使用方式跟 GitHub 一樣,而且它還是一個中文網(wǎng)站,如果你英文不是很好它是最好的選擇。
4.2碼云帳號注冊和登錄
進入碼云官網(wǎng)地址:https://gitee.com/,點擊注冊 Gitee
輸入個人信息,進行注冊即可。
帳號注冊成功以后,直接登錄。
登錄以后,就可以看到碼云官網(wǎng)首頁了。
4.3碼云創(chuàng)建遠程庫
點擊首頁右上角的加號,選擇下面的新建倉庫
填寫倉庫名稱,路徑和選擇是否開源(共開庫或私有庫)
最后根據(jù)需求選擇分支模型,然后點擊創(chuàng)建按鈕。
遠程庫創(chuàng)建好以后,就可以看到 HTTPS 和 SSH 的鏈接。
4.4IDEA 集成碼云
4.4.1IDEA 安裝碼云插件
Idea 默認不帶碼云插件,我們第一步要安裝Gitee 插件。
如圖所示,在 Idea 插件商店搜索 Gitee,然后點擊右側(cè)的 Install 按鈕。
Idea 鏈接碼云和鏈接GitHub 幾乎一樣,安裝成功后,重啟 Idea。
Idea 鏈接碼云和鏈接GitHub 幾乎一樣,安裝成功后,重啟 Idea。
Idea 重啟以后在 Version Control 設置里面看到Gitee,說明碼云插件安裝成功。
然后在碼云插件里面添加碼云帳號,我們就可以用 Idea 連接碼云了。
4.4.2IDEA 連接碼云
Idea 連接碼云和連接 GitHub 幾乎一樣,首先在 Idea 里面創(chuàng)建一個工程,初始化 git 工程,然后將代碼添加到暫存區(qū),提交到本地庫,這些步驟上面已經(jīng)講過,此處不再贅述。
?將本地代碼 push 到碼云遠程庫
自定義遠程庫鏈接。
給遠程庫鏈接定義個 name,然后再 URL 里面填入碼云遠程庫的 HTTPS 鏈接即可。碼
云服務器在國內(nèi),用HTTPS 鏈接即可,沒必要用SSH 免密鏈接。
然后選擇定義好的遠程鏈接,點擊 Push 即可。看到提示就說明 Push 遠程庫成功。
去碼云遠程庫查看代碼。
只要碼云遠程庫鏈接定義好以后,對碼云遠程庫進行 pull 和 clone 的操作和 Github 一致,此處不再贅述。
4.5碼云復制 GitHub 項目
碼云提供了直接復制 GitHub 項目的功能,方便我們做項目的遷移和下載。具體操作如下:
將 GitHub 的遠程庫HTTPS 鏈接復制過來,點擊創(chuàng)建按鈕即可。
如果GitHub 項目更新了以后,在碼云項目端可以手動重新同步,進行更新!
(5)IDEA集成GitLab
自建代碼托管平臺-GitLab
5.1GitLab 簡介
GitLab 是由GitLabInc.開發(fā),使用 MIT 許可證的基于網(wǎng)絡的 Git 倉庫管理工具,且具有 wiki 和 issue 跟蹤功能。使用 Git 作為代碼管理工具,并在此基礎上搭建起來的web 服務。 GitLab 由烏克蘭程序員 DmitriyZaporozhets 和 ValerySizov 開發(fā),它使用 Ruby 語言寫
成。后來,一些部分用 Go 語言重寫。截止 2018 年 5 月,該公司約有 290 名團隊成員,以及 2000 多名開源貢獻者。GitLab 被 IBM,Sony,JülichResearchCenter,NASA,Alibaba, Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX 等組織使用。
5.2GitLab 官網(wǎng)地址
官網(wǎng)地址:https://about.gitlab.com/
安裝說明:https://about.gitlab.com/installation/
5.3GitLab 安裝
5.3.1服務器準備
準備一個系統(tǒng)為 CentOS7 以上版本的服務器,要求內(nèi)存 4G,磁盤 50G。關閉防火墻,并且配置好主機名和 IP,保證服務器可以上網(wǎng)。
此教程使用虛擬機:主機名:gitlab-server IP 地址:192.168.6.200
5.3.2安裝包準備
Yum 在線安裝 gitlab- ce 時,需要下載幾百M 的安裝文件,非常耗時,所以最好提前把所需RPM 包下載到本地,然后使用離線 rpm 的方式安裝。
下載地址:
https://packages.gitlab.com/gitlab/gitlab- ce/packages/el/7/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm
注:資料里提供了此rpm 包,直接將此包上傳到服務器/opt/module 目錄下即可。
5.3.3編寫安裝腳本
安裝 gitlab 步驟比較繁瑣,因此我們可以參考官網(wǎng)編寫 gitlab 的安裝腳本。
[root@gitlab-server module]# vim gitlab-install.sh
sudo rpm -ivh /opt/module/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm
sudo yum install -y curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh sudo yum install -y postfix sudo service postfix start sudo chkconfig postfix on
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab- ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab- ce
給腳本增加執(zhí)行權限
[root@gitlab-server module]# chmod +x gitlab-install.sh [root@gitlab-server module]# ll
總用量 403104
-rw-r--r--. 1 root root 412774002 4 月 7 15:47 gitlab-ce-13.10.2- ce.0.el7.x86_64.rpm
-rwxr-xr-x. 1 root root 416 4 月 7 15:49 gitlab-install.sh
然后執(zhí)行該腳本,開始安裝 gitlab-ce。注意一定要保證服務器可以上網(wǎng)。
[root@gitlab-server module]# ./gitlab-install.sh
警告:/opt/module/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm: 頭 V4 RSA/SHA1 Signature, 密鑰 ID f27eab47: NOKEY
準備中... ################################# [100%]
正在升級/安裝...
1:gitlab-ce-13.10.2-ce.0.el7 ################################# [100%]
o 。 。 。 。 。
5.3.4初始化 GitLab 服務
執(zhí)行以下命令初始化 GitLab 服務,過程大概需要幾分鐘,耐心等待…
[root@gitlab-server module]# gitlab-ctl reconfigure
o 。 。 。 。 。
Running handlers:
Running handlers complete
Chef Client finished, 425/608 resources updated in 03 minutes 08 seconds
gitlab Reconfigured!
5.3.5啟動 GitLab 服務
執(zhí)行以下命令啟動 GitLab 服務,如需停止,執(zhí)行 gitlab-ctl stop
[root@gitlab-server module]# gitlab-ctl start ok: run: alertmanager: (pid 6812) 134s
ok: run: gitaly: (pid 6740) 135s
ok: run: gitlab-monitor: (pid 6765) 135s
ok: run: gitlab-workhorse: (pid 6722) 136s ok: run: logrotate: (pid 5994) 197s
ok: run: nginx: (pid 5930) 203s
ok: run: node-exporter: (pid 6234) 185s ok: run: postgres-exporter: (pid 6834) 133s ok: run: postgresql: (pid 5456) 257s
ok: run: prometheus: (pid 6777) 134s ok: run: redis: (pid 5327) 263s
ok: run: redis-exporter: (pid 6391) 173s ok: run: sidekiq: (pid 5797) 215s
ok: run: unicorn: (pid 5728) 221s
5.3.6使用瀏覽器訪問 GitLab
使用主機名或者IP 地址即可訪問GitLab 服務。需要提前配一下 windows 的hosts 文件。
首次登陸之前,需要修改下 GitLab 提供的 root 賬戶的密碼,要求 8 位以上,包含大小寫子母和特殊符號。因此我們修改密碼為 Atguigu.123456
然后使用修改后的密碼登錄 GitLab。
GitLab 登錄成功。
5.3.7GitLab 創(chuàng)建遠程庫
5.3.8IDEA 集成 GitLab
1)安裝 GitLab 插件
2)設置GitLab 插件
3)push 本地代碼到GitLab 遠程庫
自定義遠程連接
注意:gitlab 網(wǎng)頁上復制過來的連接是:http://gitlab.example.com/root/git-test.git, 需要手動修改為:http://gitlab-server/root/git-test.git
選擇 gitlab 遠程連接,進行 push。
首次向連接 gitlab,需要登錄帳號和密碼,用 root 帳號和我們修改的密碼登錄即可。
代碼 Push 成功。
只要 GitLab 的遠程庫連接定義好以后,對 GitLab 遠程庫進行 pull 和 clone 的操作和文章來源:http://www.zghlxwxcb.cn/news/detail-753216.html
Github 和碼云一致,此處不再贅述。文章來源地址http://www.zghlxwxcb.cn/news/detail-753216.html
到了這里,關于IDEA 集成 Git、Github、Gitee、GitLab的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!