Git版本控制服務(wù)器詳解
一、Git 簡(jiǎn)介
Git 是一款開源的分布式版本控制系統(tǒng),可以有效、高效的處理從很小到非常大的項(xiàng)目版本管理。Git 是 Linux Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個(gè)開放源代碼的版本控制軟件。
官網(wǎng):https://git-scm.com/
1.Git 特點(diǎn)
優(yōu)點(diǎn):
- 適合分布式開發(fā),強(qiáng)調(diào)個(gè)體;
- 公共服務(wù)器壓力和數(shù)據(jù)量都不會(huì)太大;
- 速度快、靈活;
- 離線工作;
缺點(diǎn):
代碼保密性差,一旦開發(fā)者把整個(gè)庫(kù)克隆下來就可以完全公開所有代碼和版本信息;權(quán)限控制不友好;如果需要對(duì)開發(fā)者限制各種權(quán)限的建議使用 SVN。
2.版本控制器
簡(jiǎn)單來說就是用來存放代碼的。
版本控制器分為:SVN(集中式的版本控制器),Git(分布式的版本控制器)
3.Git 工作流程
簡(jiǎn)單來說就是在工作區(qū)上寫代碼,當(dāng)要提交時(shí),需要先將代碼上傳到暫存區(qū),接著才可以將代碼提交到本地倉(cāng)庫(kù),當(dāng)提交到本地倉(cāng)庫(kù)后,還可以將代碼上傳到遠(yuǎn)程倉(cāng)庫(kù),來供其它人訪問。
Git 的幾種狀態(tài): 已暫存、已修改、已提交。
4.Git 的幾個(gè)核心概念
- 工作區(qū):就是你平常存放項(xiàng)目代碼的地方。
- 暫存區(qū):用于臨時(shí)存放你的改動(dòng),事實(shí)上它只是一個(gè)文件,保存即將提交到文件列表信息。
- 本地倉(cāng)庫(kù)(版本庫(kù)):就是安全存放數(shù)據(jù)的位置,這里面都是你提交的所有代碼信息。
- 遠(yuǎn)程倉(cāng)庫(kù):就是托管代碼的服務(wù)器,類似于 FTP 服務(wù),能夠共享數(shù)據(jù)。

二、基于 Linux 部署 Git 服務(wù)器
準(zhǔn)備工作
| 主機(jī)名 | 操作系統(tǒng) | IP 地址 |
|---|---|---|
| Git | CentOS 7.4 | 192.168.1.1 |
| Client | CentOS 7.4 | 192.168.1.2 |
1.Git 使用
創(chuàng)建用戶
[root@Git-Server ~]# useradd git # 創(chuàng)建 Git 用戶 [root@Git-Server ~]# echo "123456" | passwd git --stdin # 創(chuàng)建密碼 [root@Git-Server ~]# su - git # 切換到 Git 用戶
創(chuàng)建倉(cāng)庫(kù)
[git@Git-Server ~]$ mkdir project # 創(chuàng)建目錄. 用于存放長(zhǎng)倉(cāng)庫(kù) [git@Git-Server ~]$ cd project/ [git@Git-Server project]$ git init --bare # 初始化倉(cāng)庫(kù)

2.驗(yàn)證
在 Client 主機(jī)上創(chuàng)建工作目錄
[root@Client ~]# mkdir git
拉取庫(kù)到本地
[root@Client ~]# cd git/ [root@Client git]# git clone git@192.168.1.1:/home/git/project # 克隆 正克隆到 'project'... git@192.168.1.1's password: # 輸入 Git 用戶的密碼 warning: 您似乎克隆了一個(gè)空版本庫(kù)。 [root@Client git]# ls # 查看項(xiàng)目 project
本地給新項(xiàng)目添加文件
[root@Client git]# cd project/ # 進(jìn)入項(xiàng)目路徑 [root@Client project]# touch 1.txt # 創(chuàng)建測(cè)試文件
添加到暫緩區(qū)
[root@Client project]# git add .# 當(dāng)前目錄內(nèi)容都會(huì)添加
查看文件狀態(tài)
[root@Client project]# git status

提交到本地倉(cāng)庫(kù)
[root@Client project]# git commit -m "Test"# -m 選項(xiàng)是說明信息

配置賬號(hào)和郵件
[root@Client project]# git config --global user.name "ZhangSan" [root@Client project]# git config --global user.email "ZhangSan@163.com"
重新提交修改到本地倉(cāng)庫(kù)
[root@Client project]# git commit -m 'Test'

確認(rèn)本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)的狀態(tài)是否正常
[root@Client project]# git remote add origin git@192.168.1.1:/home/git/project.git fatal: 遠(yuǎn)程 origin 已經(jīng)存在。
把本地倉(cāng)庫(kù)代碼推送到遠(yuǎn)程倉(cāng)庫(kù)
[root@Client project]# git push origin master

三、使用 GitHub
GitHub 是一個(gè)面向開源及私有軟件項(xiàng)目的托管平臺(tái),因?yàn)橹恢С?Git 作為唯一的版本倉(cāng)庫(kù)格式進(jìn)行托管,所以故名為 GitHub。
1.注冊(cè)賬號(hào)
首先在官網(wǎng)上注冊(cè)一個(gè)賬號(hào):https://github.com/

2.在客戶端上生成密鑰對(duì)
[root@Client ~]# ssh-keygen -t rsa # 創(chuàng)建密鑰對(duì) (連敲三次回車即可) [root@Client ~]# cat .ssh/id_rsa.pub # 查看公鑰
3.導(dǎo)入公鑰密鑰到 GitHub

登錄驗(yàn)證
[root@Client ~]# ssh -T git@github.com # 需要聯(lián)網(wǎng)狀態(tài) ... Are you sure you want to continue connecting (yes/no)? yes ... Hi ChenZhuang1217! You've successfully authenticated, but GitHub does not provide shell access.
4.創(chuàng)建儲(chǔ)存空間

5.將本地項(xiàng)目上傳到 GitHub
[root@Client ~]# mkdir Test [root@Client ~]# cd Test/ [root@Client Test]# echo "This is Test" > README.md [root@Client Test]# git init 初始化空的 Git 版本庫(kù)于 /root/Test/.git/ [root@Client Test]# git add README.md [root@Client Test]# git commit -m "First Commit" [root@Client Test]# git remote add origin git@github.com:ChenZhuang1217/Test.git fatal: 遠(yuǎn)程 origin 已經(jīng)存在。 [root@Client Test]# git push -u origin master
6.查看 GitHub 文件

7.同步遠(yuǎn)程倉(cāng)庫(kù)的最新狀態(tài)到本地倉(cāng)庫(kù)
在 GitHub 創(chuàng)建新的文件



在本地倉(cāng)庫(kù)中拉取遠(yuǎn)程倉(cāng)庫(kù)的文件
[root@Client Test]# git pull -u origin master

以上就是Git版本控制服務(wù)器詳解的詳細(xì)內(nèi)容,更多關(guān)于Git版本控制服務(wù)器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MyBatisCodeHelper-Pro插件破解版詳細(xì)教程[2.8.2]
MyBatisCodeHelper-Pro是IDEA下的一個(gè)插件,功能類似mybatis plugin。這篇文章給大家介紹MyBatisCodeHelper-Pro插件破解版[2.8.2]的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2020-09-09
關(guān)于idea+centos7+zookeeper報(bào)錯(cuò)connectionloss,timeout問題
這篇文章主要介紹了idea+centos7+zookeeper報(bào)錯(cuò)connectionloss,timeout問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
matlab中乘法“*”和點(diǎn)乘“.*”;除法“/”和點(diǎn)除“./”的聯(lián)系和區(qū)別
這篇文章主要介紹了matlab中乘法“*”和點(diǎn)乘“.*”;除法“/”和點(diǎn)除“./”的聯(lián)系和區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
JetPack開發(fā)中使用CameraX完成拍照和拍視頻功能
CameraX 是一個(gè) Google 推出的 JetPack 組件。今天給大家分享JetPack之使用CameraX完成拍照和拍視頻,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-06-06

