第四階段提升
時(shí) ?間:2023年8月29日
參加人:全班人員
內(nèi) ?容:
Git分布式版本控制系統(tǒng)與github
目錄
一、案例概述
二、版本控制系統(tǒng)
(一)?本地版本控制
(二)集中化的版本控制系統(tǒng)
(三)分布式版本控制系統(tǒng)
三、 Git簡介
(一)概述
(二)Git發(fā)展史
(三)Git功能特性
四、GIT安裝部署
(一)案例環(huán)境
(二)安裝git
(三)Git命令常規(guī)操作
(四)?分支結(jié)構(gòu)
(五)windwos上Git的使用
五、GitHub托管服務(wù)
(一)注冊(cè)GitHub
(二)獲取Linux主機(jī)上的密鑰
(三)獲得Windows主機(jī)密鑰的方法
(四)創(chuàng)建倉庫
(五)在個(gè)人主機(jī)上進(jìn)行推送測(cè)試
(六)創(chuàng)建新文件,進(jìn)行拉取測(cè)試
(七)拉取文件測(cè)試
一、案例概述
????????在開發(fā)一個(gè)軟件項(xiàng)目時(shí),本地只有幾十行代碼或幾百行代碼時(shí)還可以維護(hù),但當(dāng)代碼達(dá)到一定的數(shù)量后或兩三個(gè)人共同開發(fā)一個(gè)項(xiàng)目時(shí),就很容易會(huì)出現(xiàn)代碼混亂、沖突、排錯(cuò)難等問題。
????????一旦開發(fā)完工以后發(fā)現(xiàn)整個(gè)項(xiàng)目運(yùn)行不了,提交的代碼也無法確認(rèn)到責(zé)任人,導(dǎo)致維護(hù)項(xiàng)目時(shí)需要花費(fèi)數(shù)倍的時(shí)間。為解決上述問題,版本控制系統(tǒng)應(yīng)運(yùn)而生。
????????版本控制是指對(duì)軟件開發(fā)過程中各種程序代碼、配置文件及說明文檔等文件變更的管 理,是軟件配置管理的核心思想之一。
二、版本控制系統(tǒng)
(一)?本地版本控制
????????本地版本控制系統(tǒng)許多人習(xí)慣用復(fù)制整個(gè)項(xiàng)目目錄的方式來保存不同的版本,或許還會(huì)改名加上備份時(shí)間以示區(qū)別。
????????這么做唯一的?好處就是簡單,但是特別容易犯錯(cuò)。有時(shí)候會(huì)混淆所在的工作目錄,一不小心會(huì)寫錯(cuò)文件或者覆蓋意想外的文件,無法識(shí)別文件中的修改。
(二)集中化的版本控制系統(tǒng)
????????如何讓處于不同系統(tǒng)上的開發(fā)者協(xié)同工作?于是,集中化的版本控制系統(tǒng)(Centralized Version ?Control Systems,簡稱?CVCS)應(yīng)運(yùn)而生。
????????這類系統(tǒng),諸如?CVS、Subversion(SVN)?以及Perforce?等,都有一個(gè)單一的集中管理的服務(wù)器,保存所有文件的修訂版本,而協(xié)同工作的人們都通過客戶端連到這臺(tái)服務(wù)器,取出最新的文件或者提交更新。多年以來,這已成為版本控制系統(tǒng)的標(biāo)準(zhǔn)做法。
(三)分布式版本控制系統(tǒng)
????????在這類系統(tǒng)中,像Git、Mercurial、Bazaar?以及?Darcs?等,客戶端并不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像(克隆)下來。
????????這么一來,任何一處協(xié)同工作用的服務(wù)器發(fā)生故障,事后都可以用任何一個(gè)鏡像出來的本地倉庫恢復(fù)。因?yàn)槊恳淮蔚目寺〔僮?,?shí)際上都是一次對(duì)代碼倉庫的完整備份。
三、 Git簡介
官網(wǎng):https://git-scm.com
(一)概述
????????git是一個(gè)分布式版本控制軟件,最初由林納斯·托瓦茲(Linus Torvalds)創(chuàng)作,于2005年以GPL發(fā)布。最初目的是為更好地管理Linux內(nèi)核開發(fā)而設(shè)計(jì)。
Git?官方中文手冊(cè)?https://git-scm.com/book/zh/v2
(二)Git發(fā)展史
????????自2002年開始,林納斯·托瓦茲決定使用BitKeeper作為Linux內(nèi)核主要的版本控制系統(tǒng)用以維護(hù)代碼。因?yàn)锽itKeeper為專有軟件,這個(gè)決定在社區(qū)中長期遭受質(zhì)疑。在Linux社區(qū)中,特別是理查德·斯托曼與自由軟件基金會(huì)的成員,主張應(yīng)該使用開放源代碼的軟件來作為Linux核心的版本控制系統(tǒng)。林納斯·托瓦茲曾考慮過采用現(xiàn)成軟件作為版本控制系統(tǒng)(例如Monotone),但這些軟件都存在一些問題,特別是性能不佳?,F(xiàn)成的方案,如CVS的架構(gòu),受到林納斯·托瓦茲的批評(píng)。
????????2005年,安德魯·垂鳩寫了一個(gè)簡單程序,可以連接BitKeeper的存儲(chǔ)庫,BitKeeper著作權(quán)擁有者拉里·麥沃伊認(rèn)為安德魯·垂鳩對(duì)BitKeeper內(nèi)部使用的協(xié)議進(jìn)行逆向工程,決定收回?zé)o償使用BitKeeper的授權(quán)。Linux內(nèi)核開發(fā)團(tuán)隊(duì)與BitMover公司進(jìn)行蹉商,但無法解決他們之間的歧見。林納斯·托瓦茲決定自行開發(fā)版本控制系統(tǒng)替代BitKeeper,以十天的時(shí)間,編寫出第一個(gè)git版本。
????????Git 是一個(gè)開源的分布式版本控制系統(tǒng),用以有效、高速的處理從很小到非常大的項(xiàng)目版本管理。
????????一個(gè)原始 Git 版本倉庫,可以讓其他主機(jī)克隆這個(gè)原始版本倉庫,從而使得一個(gè)Git 版本倉庫可以同時(shí)分布到不同的主機(jī)上,并且每臺(tái)主機(jī)的版本庫都是一樣的,并沒有主次之分,極大的保證了數(shù)據(jù)的安全性,并使得用戶能夠自主選擇 Git 服務(wù)器推送文件了,其實(shí)部署一個(gè) Git 服務(wù)器是一件非常簡單的事情。
????????如上所述,作為一個(gè)分布式的版本控制系統(tǒng),在 Git 中并不存在主庫這樣的概念。每一 份復(fù)制出的庫都可以獨(dú)立使用,任何兩個(gè)庫之間的不一致之處都可以進(jìn)行合并。
????????GitHub 是一個(gè)面向開源及私有軟件項(xiàng)目的托管平臺(tái),因?yàn)橹恢С?Git 作為唯一的版本庫格式進(jìn)行托管,故名 GitHub。GitHub 可以提供給用戶空間創(chuàng)建 Git 倉儲(chǔ),保存用戶的一些數(shù)據(jù)文檔或者代碼等。
????????GitHub 作為開源代碼庫以及版本控制系統(tǒng),目前擁有 140 多萬開發(fā)者用戶。隨著越多的應(yīng)用程序轉(zhuǎn)移到了云上,GitHub 已經(jīng)成為了管理軟件開發(fā)以及發(fā)現(xiàn)已有代碼的首選方法。
????????GitHub 可以托管各種 Git 庫,并提供一個(gè) Web 界面,但與其它像 SourceForge 或 Google Code 這樣的服務(wù)不同,GitHub 的獨(dú)特賣點(diǎn)在于從另外一個(gè)項(xiàng)目進(jìn)行分支的簡易性。為一個(gè)項(xiàng)目貢獻(xiàn)代碼非常簡單:首先點(diǎn)擊項(xiàng)目站點(diǎn)的“fork”的按鈕,然后將代碼檢出并將修改加入到剛才分出的代碼庫中,最后通過內(nèi)建的“pull request”機(jī)制向項(xiàng)目負(fù)責(zé)人申請(qǐng)代碼合并。
????????Gitlab 是一個(gè)基于 Git 的項(xiàng)目管理軟件,用于倉庫管理系統(tǒng)的開源項(xiàng)目。使用 Git 作為代碼管理工具,并在此基礎(chǔ)上搭建起來 Web 服務(wù)。
????????Git、Gitlab、Github 都是基于 Git 的,可以說是 Git 的衍生品。
(三)Git功能特性
克隆數(shù)據(jù)庫版本:從服務(wù)器上克隆數(shù)據(jù)庫(包括代碼和版本信息)到本機(jī)上;
提交代碼:在本機(jī)上自己創(chuàng)建的分支上提交代碼;
合并分支:在本機(jī)上合并分支;
拉取合并分支:新建一個(gè)分支,把服務(wù)器上最新版的代碼 Fetch 下來,然后跟自己的主分支合并;
代碼沖突解決:一般開發(fā)者之間解決沖突的方法,開發(fā)者之間可以使用 pull 命令解決沖突,解決完沖突之后再向主開發(fā)者提交補(bǔ)丁。
四、GIT安裝部署
(一)案例環(huán)境
IP地址 |
主機(jī)名 |
角色 |
192.168.100.131 |
gitserver |
Git服務(wù)器 |
192.168.100.132 |
git |
Git客戶端 |
(二)安裝git
1、初始環(huán)境
[root@gitclient ~]# systemctl stop firewalld
[root@gitclient ~]# iptables -F
[root@gitclient ~]# setenforce 0
Gitserver服務(wù)端:
Git客戶端:
2、yum安裝Git
# centos?自帶git
[root@gitclient ~]# rpm -q git
?#?安裝方法
[root@gitclient ~]# yum -y install git
3、?編譯安裝
編譯安裝可以安裝較新版本的git
Git下載地址:?https://github.com/git/git/releases
# 安裝依賴關(guān)系
[root@gitclient ~]# yum -y install curl-devel expat-devel gettext-devel ?openssl-devel zlib-devel
# 編譯安裝—服務(wù)端和客戶端
[root@gitclient ~]# wget https://github.com/git/git/archive/v2.22.0.tar.gz
[root@gitclient ~]# tar xf git-2.22.0.tar.gz -C /usr/src/
[root@gitclient ~]# cd /usr/src/git-2.22.0/
[root@git git-2.22.0]# make configure
[root@git git-2.22.0]# ./configure --prefix=/usr/local/git && make && make install
[root@git git-2.22.0]# ln -sf /usr/local/git/bin/git /usr/bin/
[root@git git-2.22.0]# git --version
4、初次運(yùn)行?Git?前的配置
命令集
git config --global user.name "huyang" ?#配置git使用用戶
git config --global user.email "13363571949@163.com" ?#配置git使用郵箱
git config --global color.ui true ?#語法高亮
git config --list #查看全局配置
配置過程
[root@gitclient ~]# git config --global user.name "crushlinux" ?#配置git使用用戶
[root@gitclient ~]# git config --global user.email "crushlinux@163.com" ?#配置git使用郵箱
[root@gitclient ~]# git config --global color.ui true ?#語法高亮
[root@gitclient ~]# git config --list #查看全局配置
生成的配置文件
[root@gitclient ~]# cat .gitconfig
獲取幫助
使用Git時(shí)需要獲取幫助,有三種方法可以找到Git命令的使用手冊(cè):
例如,要想獲得配置命令的手冊(cè),執(zhí)行
[root@gitclient ~]# git help config
[root@gitclient ~]# git config --help
[root@gitclient ~]# man git config
5、初始化及獲取?Git?倉庫
Git服務(wù)器操作
[root@gitserver ~]# mkdir git_data.git
[root@gitserver ~]# cd git_data.git/
[root@gitserver git_data.git]# git --bare init
?Git客戶端操作
[root@gitclient ~]# ssh-keygen
[root@gitclient ~]# ssh-copy-id root@192.168.100.131
[root@gitclient ~]# git clone root@192.168.100.131:/root/git_data.git
[root@gitclient ~]# cd git_data/
[root@git git_data]# git status
(三)Git命令常規(guī)操作
1、常用命令說明
命令 |
命令說明 |
add |
添加文件內(nèi)容至?xí)捍鎱^(qū)(索引) |
bisect |
通過二分查找定位引入?bug?的變更 |
branch |
列出、創(chuàng)建或刪除分支 |
checkout |
檢出一個(gè)分支或路徑到工作區(qū) |
clone |
克隆一個(gè)版本庫到一個(gè)新目錄 |
commit |
記錄變更到版本庫(本地) |
diff |
顯示提交之間、提交和工作區(qū)之間等的差異 |
fetch |
從另外一個(gè)版本庫下載對(duì)象和引用 |
grep |
輸出和模式匹配的行 |
init |
創(chuàng)建一個(gè)空的 |
Git |
版本庫或重新初始化一個(gè)已存在的版本庫 |
log |
顯示提交日志 |
merge |
合并兩個(gè)或更多開發(fā)歷史 |
mv |
移動(dòng)或重命名一個(gè)文件、目錄或符號(hào)鏈接 |
pull |
獲取并合并另外的版本庫或一個(gè)本地分支 |
push |
更新遠(yuǎn)程引用和相關(guān)的對(duì)象 |
rebase |
本地提交轉(zhuǎn)移至更新后的上游分支中 |
reset |
重置當(dāng)前HEAD到指定狀態(tài) |
rm |
從工作區(qū)和索引中刪除文件 |
show |
顯示各種類型的對(duì)象 |
status |
顯示工作區(qū)狀態(tài) |
tag |
創(chuàng)建、列出、刪除或校驗(yàn)一個(gè)GPG簽名的?tag?對(duì)象 |
常用操作示意圖
文件的狀態(tài)變化周期
2、創(chuàng)建文件
[root@git git_data]# touch README
[root@git git_data]# git status
[root@git git_data]# git add ./*
[root@git git_data]# git status
[root@git git_data]# tree .git/
由工作區(qū)提交到本地倉庫
[root@git git_data]# git commit -m 'first commit'
查看git的狀態(tài)
[root@git git_data]# git status
[root@git git_data]# git branch --unset-upstream
[root@git git_data]# git status
[root@git git_data]# tree ?.git/
提交到遠(yuǎn)程倉庫
[root@git git_data]# git push root@192.168.100.131:/root/git_data.git
3、?添加新文件
git add ? #添加到暫存區(qū)域
git commit ? #提交git倉庫 -m 后面接上注釋信息,內(nèi)容關(guān)于本次提交的說明,方便自己或他人查看
修改或刪除原有文件
常規(guī)方法
git add
git commit
簡便方法
git commit ?-a ?-m "注釋信息"
-a?表示直接提交
4、刪除git內(nèi)的文件
命令說明:
沒有添加到暫存區(qū)的數(shù)據(jù)直接rm刪除即可。
已經(jīng)添加到暫存區(qū)數(shù)據(jù):
git rm --cached database?
#將文件從git暫存區(qū)域的追蹤列表移除(并不會(huì)刪除當(dāng)前工作目錄內(nèi)的數(shù)據(jù)文件)
git rm -f database
#將文件數(shù)據(jù)從git暫存區(qū)和工作目錄一起刪除
操作命令:
# 創(chuàng)建新文件
[root@git git_data]# touch 123
[root@git git_data]# git status
[root@git git_data]# git add 123
[root@git git_data]# git status
#??刪除文件
[root@git git_data]# rm -f 123
[root@git git_data]# ls
[root@git git_data]# git status
[root@git git_data]# git reset HEAD ./*
[root@git git_data]# git status
[root@git git_data]# git rm 123
[root@git git_data]# git status
5、重命名暫存區(qū)數(shù)據(jù)
沒有添加到暫存區(qū)的數(shù)據(jù)直接mv/rename改名即可。
已經(jīng)添加到暫存區(qū)數(shù)據(jù):
操作命令
[root@git git_data]# git mv README NOTICE
[root@git git_data]# git status
[root@git git_data]# ls
6、查看歷史記錄
??git log?? #查看提交歷史記錄
??git log -2?? #查看最近幾條記錄
??git log -p -1? #-p顯示每次提交的內(nèi)容差異,例如僅查看最近一次差異
??git log --stat -2 #--stat簡要顯示數(shù)據(jù)增改行數(shù),這樣能夠看到提交中修改過的內(nèi)容,對(duì)文件添加或移動(dòng)的行數(shù),并在最后列出所有增減行的概要信息
??git log --pretty=oneline #--pretty根據(jù)不同的格式展示提交的歷史信息
??git log --pretty=fuller -2 #以更詳細(xì)的模式輸出提交的歷史記錄
??git log --pretty=fomat:"%h %cn"? #查看當(dāng)前所有提交記錄的簡短SHA-1哈希字串與提交著的姓名。
使用format參數(shù)來指定具體的輸出格式
格式 |
說明 |
%s |
提交說明。 |
%cd |
提交日期。 |
%an |
作者的名字。 |
%cn |
提交者的姓名。 |
%ce |
提交者的電子郵件。 |
%H |
提交對(duì)象的完整SHA-1哈希字串。 |
%h |
提交對(duì)象的簡短SHA-1哈希字串。 |
%T |
樹對(duì)象的完整SHA-1哈希字串。 |
%t |
樹對(duì)象的簡短SHA-1哈希字串。 |
%P |
父對(duì)象的完整SHA-1哈希字串。 |
%p |
父對(duì)象的簡短SHA-1哈希字串。 |
%ad |
作者的修訂時(shí)間。 |
操作命令
[root@git git_data]# git log
7、還原歷史數(shù)據(jù)
????????Git服務(wù)程序中有一個(gè)叫做HEAD的版本指針,當(dāng)用戶申請(qǐng)還原數(shù)據(jù)時(shí),其實(shí)就是將HEAD指針指向到某個(gè)特定的提交版本,但是因?yàn)镚it是分布式版本控制系統(tǒng),為了避免歷史記錄沖突,故使用了SHA-1計(jì)算出十六進(jìn)制的哈希字串來區(qū)分每個(gè)提交版本,另外默認(rèn)的HEAD版本指針會(huì)指向到最近的一次提交版本記錄,而上一個(gè)提交版本會(huì)叫HEAD^,上上一個(gè)版本則會(huì)叫做HEAD^^,當(dāng)然一般會(huì)用HEAD~5來表示往上數(shù)第五個(gè)提交版本。
git reset --hard?? hash
git reset --hard HEAD^? #還原歷史提交版本上一次
git reset --hard 3de15d4 #找到歷史還原點(diǎn)的SHA-1值后,就可以還原(值不寫全,系統(tǒng)會(huì)自動(dòng)匹配)
操作命令
[root@git git_data]# vim NOTICE
[root@git git_data]# cat NOTICE
[root@git git_data]# git commit -a -m 'test'
[root@git git_data]# git log
[root@git git_data]# git reset --hard 6a71d
[root@git git_data]# ls
[root@git git_data]# cat README
8、還原未來數(shù)據(jù)
????????什么是未來數(shù)據(jù)?就是你還原到歷史數(shù)據(jù)了,但是你后悔了,想撤銷更改,但是git ?log已經(jīng)找不到這個(gè)版本了。
git reflog #查看未來歷史更新點(diǎn)
操作命令
[root@git git_data]# git reflog
[root@git git_data]# git reset --hard 94d46
[root@git git_data]# cat NOTICE
9、標(biāo)簽使用
前面回滾使用的是一串字符串,又長又難記。
git tag v1.0?? #當(dāng)前提交內(nèi)容打一個(gè)標(biāo)簽(方便快速回滾),每次提交都可以打個(gè)tag。
git tag????????? #查看當(dāng)前所有的標(biāo)簽
git show v1.0?? #查看當(dāng)前1.0版本的詳細(xì)信息
git tag v1.2 -m "version 1.2 release is test"? #創(chuàng)建帶有說明的標(biāo)簽,-a指定標(biāo)簽名字,-m指定說明文字
git tag -d v1.0?? #我們?yōu)橥粋€(gè)提交版本設(shè)置了兩次標(biāo)簽,刪除之前的v1.0
操作命令
[root@git git_data]# git reset --hard 6a71d
[root@git git_data]# git tag
[root@git git_data]# git tag v20230829
[root@git git_data]# git tag
[root@git git_data]# git reset --hard v20230829
10、對(duì)比數(shù)據(jù)
git diff可以對(duì)比當(dāng)前文件與倉庫已保存文件的區(qū)別,知道了對(duì)NOTICE作了什么修改
后,再把它提交到倉庫就放?多了。
[root@git git_data]# echo "hello,gitserver" >> README
[root@git git_data]# git diff README
(四)?分支結(jié)構(gòu)
????????在實(shí)際的項(xiàng)目開發(fā)中,盡量保證master分支穩(wěn)定,僅用于發(fā)布新版本,平時(shí)不要隨便直接修改master分支里面的數(shù)據(jù)文件。
????????那在哪干活呢?干活都在dev分支上。每個(gè)人從dev分支創(chuàng)建自己個(gè)人分支,開發(fā)完合并到dev分支,最后dev分支合并到master分支。所以團(tuán)隊(duì)的合作分支看起來會(huì)像下圖那樣。
[root@git git_data]# git branch linux
[root@git git_data]# git branch
[root@git git_data]# git checkout linux
[root@git git_data]# git branch
在linux分支進(jìn)行修改
[root@git git_data]# cat README
[root@git git_data]# echo "hello,github" >> README
[root@git git_data]# git add .
[root@git git_data]# git commit -m "github"
[root@git git_data]# git status
回到master分支
[root@git git_data]# git checkout master
[root@git git_data]# cat README
[root@git git_data]# git log -1
合并代碼
[root@git git_data]# git merge linux
[root@git git_data]# git status
[root@git git_data]# cat README
2、合并失敗解決
模擬沖突,在文件的同一行做不同修改
在master?分支進(jìn)行修改
[root@git git_data]# cat README
[root@git git_data]# echo "hello.error" >> README
[root@git git_data]# git commit -a -m "master error"
切換到linux分支
[root@git git_data]# git checkout linux
[root@git git_data]# cat README
[root@git git_data]# echo "hello,linux" >> README
[root@git git_data]# git commit -a -m "linux"
回到master分區(qū),進(jìn)行合并,出現(xiàn)沖突
[root@git git_data]# git checkout master
[root@git git_data]# git merge linux
解決沖突
[root@git git_data]# vim README
#?手工解決沖突
[root@git git_data]# git commit -a -m "master merge"
3、刪除分支
????????因?yàn)橹耙呀?jīng)合并了linux分支,所以現(xiàn)在看到它在列表中。?在這個(gè)列表中分支名字前沒有?*?號(hào)的分支通??梢允褂?git branch -d?刪除掉;你已經(jīng)將它們的工作整合到了另一個(gè)分支,所以并不會(huì)失去任何東西。
查看所有包含未合并工作的分支,可以運(yùn)行?git branch --no-merged:
[root@git git_data]# git branch --no-merged
[root@git git_data]# git branch -d linux
[root@git git_data]# git branch
????????如果真的想要?jiǎng)h除分支并丟掉那些工作,如同幫助信息里所指出的,可以使用?-D?選項(xiàng)強(qiáng)制刪除它。
(五)windwos上Git的使用
windows?上git軟件網(wǎng)站?https://git-for-windows.github.io
軟件下載地址:
https://github.com/git-for-windows/git/releases/download/v2.22.0.windows.1/Git-2.22.0-64-bit.exe
創(chuàng)建新的倉庫
?定義倉庫的路徑
添加用戶信息(在?git bash中)
Crushlinux@DESKTOP-5JDO87L MINGW64 ~
$ git config ?--global user.email "crushlinux@163.com"
Crushlinux@DESKTOP-5JDO87L MINGW64 ~
$ git config ?--global user.name "crushlinux"
在git Gui?中添加用戶信息,添加一次就可
?在頁面中將數(shù)據(jù)配置好即可使用
五、GitHub托管服務(wù)
????????Github顧名思義是一個(gè)Git版本庫的托管服務(wù),是目前全球最大的軟件倉庫,擁有上百萬的開發(fā)者用戶,也是軟件開發(fā)和尋找資源的最佳途徑,Github不僅可以托管各種Git版本倉庫,還擁有了更美觀的Web界面,您的代碼文件可以被任何人克隆,使得開發(fā)者為開源項(xiàng)貢獻(xiàn)代碼變得更加容易,當(dāng)然也可以付費(fèi)購買私有庫,這樣高性價(jià)比的私有庫真的是幫助到了很多團(tuán)隊(duì)和企業(yè)。
(一)注冊(cè)GitHub
瀏覽器訪問github官網(wǎng)?:?https://github.com/?,點(diǎn)擊Sign up?進(jìn)行注冊(cè)
填寫個(gè)人信息,進(jìn)行注冊(cè)
輸入驗(yàn)證碼
輸入信息
選擇如下:
選擇倉庫類型,默認(rèn)免費(fèi),點(diǎn)擊底下Continue注冊(cè)
用戶創(chuàng)建完成,可以創(chuàng)建新的項(xiàng)目
添加密鑰
在github上添加一個(gè)新的ssh密鑰
?
(二)獲取Linux主機(jī)上的密鑰
[root@gitserver ~]# ssh-keygen
[root@gitserver ~]# cat .ssh/id_rsa.pub
(三)獲得Windows主機(jī)密鑰的方法
Crushlinux@DESKTOP-5JDO87L MINGW64 ~
$ ssh-keygen.exe
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Crushlinux/.ssh/id_rsa):
Created directory '/c/Users/Crushlinux/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Crushlinux/.ssh/id_rsa.
Your public key has been saved in /c/Users/Crushlinux/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:IHhPxTKtHlNZx0kqvob90V5tN8IM0VQT4hZ7yWBkznc Crushlinux@DESKTOP-5JDO87L
The key's randomart image is:
+---[RSA 3072]----+
| ??????o.o.o+X.+.|
| ??. ?o.= ?o@ * o|
| ?. o o=. .. B =E|
| ??. ++o . ?o o .|
| ????..oS ?. ????|
| ?????.o . .+ ?. |
| ?????. + . .+..+|
| ??????. . o ...o|
| ?????????. . ???|
+----[SHA256]-----+
Crushlinux@DESKTOP-5JDO87L MINGW64 ~
$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHSP3L5h8irgkZe3snixWIDa4Q7JBQk0PzAoBQZPB1kgHuK5iZ4hY/mEqr/vegbWHdI0G5tYHRNi1PTnFrDSnjaIaFAoiuZt36aOUPmHpgmMHEV6hE3jeuoanK2LrIepVNvscwu15O8t2/dKc0An+x83miS5PRAojXj3BSQ1EsJ+LWmnl3W/UM6waVujmB7TihLYzPt8x2Mgi8jqvA6pgLwK/wdK+3pldSbTM3D3j8XLt2AXAPnkPa9C7HeUv7Tm905lbalRWmuhC/K2jc+WBXjbwc4xgjlLYtP5JjhGoecZ72CKCVVp1DN7Yz9Nb98rEzEsqTsvfvjVCrssmYDxSP2NRDWB8mkZw5XrKgnFRLuvpql2MPDAthWNYlZXH0RJ9yVHiqAN3E5PRuJhtFbSLJYRMNMmjkmptVwbjUYvpm3W9ZbAeP6z1ueJ9RGc1dwtBnYNN/PZlD/lqvJll+5t2c+V8xkStEEobQFg7aQSc+BU9ZAsdCL79veOHUtfiDh+k= Crushlinux@DESKTOP-5JDO87L
密鑰創(chuàng)建完成后進(jìn)行添加
密鑰添加成功
(四)創(chuàng)建倉庫
準(zhǔn)備工作已經(jīng)完畢,右上角點(diǎn)擊創(chuàng)建一個(gè)新的倉庫
創(chuàng)建倉庫,輸入個(gè)人信息
(五)在個(gè)人主機(jī)上進(jìn)行推送測(cè)試
[root@gitserver ~]# git config --global user.email "crushlinux13363571949root@gitserver ~]# git config --global user.name "huyang"
[root@gitserver ~]# git config --list
[root@gitserver ~]# mkdir hy
[root@gitserver ~]# cd hy
[root@gitserver hy]# echo "# test" >> README.md
[root@gitserver hy]# git init
[root@gitserver hy]# git add README.md
[root@gitserver hy]# git commit -m "first
[root@gitserver hy]# git remote add origin git@github.com:huyang-Ada/test1.git
[root@gitserver hy]# git push -u origin master
Web訪問測(cè)試:
(六)創(chuàng)建新文件,進(jìn)行拉取測(cè)試
編輯內(nèi)容:
點(diǎn)擊確定
創(chuàng)建好后點(diǎn)擊下面的commit即可
github添加成功,進(jìn)行拉取測(cè)試
(七)拉取文件測(cè)試
查看目錄內(nèi)容
[root@gitserver hy]# pwd
[root@gitserver crushlinux]# ls
進(jìn)行拉取
[root@gitserver hy]# git pull
[root@gitserver hy]# ls
[root@gitserver hy]# cat abc.test文章來源:http://www.zghlxwxcb.cn/news/detail-682426.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-682426.html
到了這里,關(guān)于Git分布式版本控制系統(tǒng)與github的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!