網(wǎng)站首頁 編程語言 正文
一、Git 簡介
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è)庫克隆下來就可以完全公開所有代碼和版本信息;權(quán)限控制不友好;如果需要對開發(fā)者限制各種權(quán)限的建議使用 SVN。
2.版本控制器
簡單來說就是用來存放代碼的。
版本控制器分為:SVN(集中式的版本控制器),Git(分布式的版本控制器)
3.Git 工作流程
簡單來說就是在工作區(qū)上寫代碼,當(dāng)要提交時(shí),需要先將代碼上傳到暫存區(qū),接著才可以將代碼提交到本地倉庫,當(dāng)提交到本地倉庫后,還可以將代碼上傳到遠(yuǎn)程倉庫,來供其它人訪問。
Git 的幾種狀態(tài): 已暫存、已修改、已提交。
4.Git 的幾個(gè)核心概念
- 工作區(qū):就是你平常存放項(xiàng)目代碼的地方。
- 暫存區(qū):用于臨時(shí)存放你的改動(dòng),事實(shí)上它只是一個(gè)文件,保存即將提交到文件列表信息。
- 本地倉庫(版本庫):就是安全存放數(shù)據(jù)的位置,這里面都是你提交的所有代碼信息。
- 遠(yuǎn)程倉庫:就是托管代碼的服務(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)建倉庫
[git@Git-Server ~]$ mkdir project # 創(chuàng)建目錄. 用于存放長倉庫
[git@Git-Server ~]$ cd project/
[git@Git-Server project]$ git init --bare # 初始化倉庫
2.驗(yàn)證
在 Client 主機(jī)上創(chuàng)建工作目錄
[root@Client ~]# mkdir git
拉取庫到本地
[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è)空版本庫。
[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)建測試文件
添加到暫緩區(qū)
[root@Client project]# git add .# 當(dāng)前目錄內(nèi)容都會(huì)添加
查看文件狀態(tài)
[root@Client project]# git status
提交到本地倉庫
[root@Client project]# git commit -m "Test"# -m 選項(xiàng)是說明信息
配置賬號和郵件
[root@Client project]# git config --global user.name "ZhangSan"
[root@Client project]# git config --global user.email "ZhangSan@163.com"
重新提交修改到本地倉庫
[root@Client project]# git commit -m 'Test'
確認(rèn)本地倉庫和遠(yuǎn)程倉庫的狀態(tài)是否正常
[root@Client project]# git remote add origin git@192.168.1.1:/home/git/project.git
fatal: 遠(yuǎn)程 origin 已經(jīng)存在。
把本地倉庫代碼推送到遠(yuǎn)程倉庫
[root@Client project]# git push origin master
三、使用 GitHub
GitHub 是一個(gè)面向開源及私有軟件項(xiàng)目的托管平臺(tái),因?yàn)橹恢С?Git 作為唯一的版本倉庫格式進(jìn)行托管,所以故名為 GitHub。
1.注冊賬號
首先在官網(wǎng)上注冊一個(gè)賬號:https://github.com/
2.在客戶端上生成密鑰對
[root@Client ~]# ssh-keygen -t rsa # 創(chuàng)建密鑰對 (連敲三次回車即可)
[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 版本庫于 /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)程倉庫的最新狀態(tài)到本地倉庫
在 GitHub 創(chuàng)建新的文件
在本地倉庫中拉取遠(yuǎn)程倉庫的文件
[root@Client Test]# git pull -u origin master
原文鏈接:https://blog.csdn.net/weixin_46902396/article/details/118188953
相關(guān)推薦
- 2022-12-13 C++?POSIX?API超詳細(xì)分析_C 語言
- 2023-03-13 使用webpack配置react-hot-loader熱加載局部更新_React
- 2022-09-25 ubuntu 20.04 開機(jī)黑屏小橫杠和循環(huán)登錄
- 2022-11-17 python中的queue隊(duì)列類型及函數(shù)用法_python
- 2022-07-08 PyHacker編寫指南引用Nmap模塊實(shí)現(xiàn)端口掃描器_python
- 2022-04-28 WPF使用Grid網(wǎng)格面板布局_實(shí)用技巧
- 2022-06-17 C#中Parallel類For、ForEach和Invoke使用介紹_C#教程
- 2023-05-26 keras.layers.Conv2D()函數(shù)參數(shù)用法及說明_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支