git下载安装、验证、企业实战单机、多人协作
此課程會(huì)劃分為10個(gè)小結(jié)進(jìn)行講述
- 1 安裝和配置
- 2 創(chuàng)建倉(cāng)庫(kù)
- 3 基本用法
- 4 三種狀態(tài)
- 5 標(biāo)簽 tag
- 6 分支 branch
- 7 合并分支
- 8 遠(yuǎn)程倉(cāng)庫(kù)
- 9 如何多人遠(yuǎn)程合作
git下載安裝驗(yàn)證
一、下載、安裝、驗(yàn)證
1、git官網(wǎng):
https://git-scm.com/downloads
2、安裝及配置
2-1 一路下一步
2-2 驗(yàn)證:在命令行輸入
2-3 配置git config --global(全局)、查看配置git config --list
git config --global user.name "用戶名" git config --global user.email "郵箱" git config --list碼云配置方案:
git config --global user.name "gb_90" git config --global user.email "13396492261@63.com" git config --listGitHub配置方案:
git config --global user.name "gb-heima" git config --global user.email "754263923@qq.com" git config --listidea terminal設(shè)置(關(guān)鍵步驟):
查看版本:
3、在idea中初始化倉(cāng)庫(kù) 創(chuàng)建倉(cāng)庫(kù)(2種本地創(chuàng)建和遠(yuǎn)程拉取)
3-1 初始化倉(cāng)庫(kù)
方式1:進(jìn)入目錄git init
創(chuàng)建test1目錄,進(jìn)入test1執(zhí)行g(shù)it init:
方式2:git init 目錄名
cd .. git init test2
查看初始化倉(cāng)庫(kù)文件:
方式3,遠(yuǎn)程拉取
git clone +遠(yuǎn)程倉(cāng)庫(kù)地址(例如:https://github.com/biaoyansu/15.x.git)
備注:遠(yuǎn)程項(xiàng)目重命名
git clone +遠(yuǎn)程倉(cāng)庫(kù)地址 + 項(xiàng)目新的名稱
這樣就把遠(yuǎn)程倉(cāng)庫(kù)的名稱更新為test3了,內(nèi)容不改變
查看目錄下的文件
windows:dir
linux:ll 或者ls -a 顯示所有文件包括隱藏
二、基本用法:
1、編碼設(shè)置:
提交信息編碼
輸出log輸出的編碼
查看設(shè)置的信息:
2、查看倉(cāng)庫(kù)狀態(tài): git status
創(chuàng)建gblfy目錄->>>j進(jìn)入目錄->>>初始化git倉(cāng)庫(kù)->>>查看倉(cāng)庫(kù)狀態(tài)->>>未新增新文件
3、將所有修改添加到暫存區(qū): git add .
創(chuàng)建gblfy目錄->>>j進(jìn)入目錄->>>初始化git倉(cāng)庫(kù)->>>查看倉(cāng)庫(kù)狀態(tài)->>>新增gblfy.txt新文件->>>添加內(nèi)容”gblfy文件第一次提交,添加內(nèi)容”
4、提交版本: git commit -am “描述內(nèi)容”
5、查看版本記錄: git log
6、穿越到制定的歷史節(jié)點(diǎn) git checkout xxx
在gblfy.txt->>>添加”穿越歷史節(jié)點(diǎn)第一次測(cè)試”->>>將gblfy.txt添加至?xí)捍鎱^(qū)->>>將gblfy.txt從至?xí)捍鎱^(qū)提交到本地倉(cāng)庫(kù)
查看提交的記錄:
穿越歷史節(jié)點(diǎn)前:
穿越歷史節(jié)點(diǎn)后:
備注:制作后悔藥流程(3步走)
git add . git commit -m”演示制作互毆會(huì)要流程3步走”
回到剛才編輯的版本 git checkout -
三種狀態(tài)
modified已修改
stated已暫存
commited已提交
1、git節(jié)點(diǎn)組成基本3個(gè)階段:
modify(修改文件)
git add . 添加到暫存區(qū)
git commit -am “描述提交內(nèi)容”
案例:
在gblfy.txt 文件中+A
查看文件狀態(tài):
git status
將文件添加至?xí)捍鎱^(qū)
將gblfy.txt(新增A)文件提交到本地倉(cāng)庫(kù):
3、查看版本記錄+修改的內(nèi)容 git log -p
4、案例——對(duì)于一個(gè)文件修改多次:
例如:新建1.txt->>>>在1.txt中,添加了A ->>>>將A添加至?xí)捍鎱^(qū):
touch 1.txt
git add 1.txt 在未提交之前,又添加了B
進(jìn)行提交:
git commit -m”未提交之前,添加B倉(cāng)庫(kù)只有A,沒有B”
這種情況,倉(cāng)庫(kù)里git add 1.txt中只有內(nèi)容A,原因是,添加B操作后,沒有將B添加到暫存區(qū)
之后,又一次添加了C 和D
針對(duì)一個(gè)文件修改多次這種情況,可以依次添加到暫存區(qū),最后,一起提交:
總結(jié):后悔藥要經(jīng)過3個(gè)階段
modify(修改文件)
git add . 添加到暫存區(qū)
git commit -am “描述提交內(nèi)容”
四、標(biāo)簽tag
新建test目->>>初始化git本地倉(cāng)庫(kù)->>>新建2.txt->>>將添加暫存區(qū)->>>并提交到本地倉(cāng)庫(kù):
1、查看版本信息前一條信息:git log --oneline --decorate
附注標(biāo)簽:
git tag -a 標(biāo)簽名 -m “備注”
2、列出所有標(biāo)簽(git tag)
3、打標(biāo)簽一般以最近的節(jié)點(diǎn)打標(biāo)簽,如果選擇一個(gè)歷史節(jié)點(diǎn)打標(biāo)簽操作如下:
案例演示1:
提交3次,第一次和第三次分別建立標(biāo)簽v1.0 v2.0,這是情況是:
提交3次
有v1.0 v2.0 二個(gè)標(biāo)簽
進(jìn)行以下操作:
在v2.0節(jié)點(diǎn)上,回到第二次提交的節(jié)點(diǎn)(通過id號(hào)),建立標(biāo)簽,之后,返回v2.0節(jié)點(diǎn),查看所有標(biāo)簽
有v1.0 v1.5 v2.0 三個(gè)標(biāo)簽
在上面的第一個(gè)標(biāo)簽的基礎(chǔ)上開始演示:
第一步:在test本地倉(cāng)庫(kù)下2.txt文件中添加”開始寫第二版書籍”內(nèi)容
第二步:將2.txt文件添加在暫存區(qū),并提交到本地倉(cāng)庫(kù)
第三步:在test本地倉(cāng)庫(kù)下2.txt文件中添加”第二版書籍中期”內(nèi)容
第四步:將2.txt文件添加在暫存區(qū),并提交到本地倉(cāng)庫(kù):
第五步:在第三次提交的基礎(chǔ)上,建立標(biāo)簽v2.0
查看所有標(biāo)簽:
查看歷史記錄
第六步:回到9834743節(jié)點(diǎn)
回到9834743節(jié)點(diǎn)后,的文件顯示的內(nèi)容
第七步:在9834743節(jié)點(diǎn)上新增標(biāo)簽v1.5
第八步:回到v2.0節(jié)點(diǎn)
git checkout cd3bfe
回到v2.0節(jié)點(diǎn)后文件顯示的內(nèi)容:
查看所有標(biāo)簽:
案例完成!!!
簡(jiǎn)單方法:
例如:
git tag -a v0.5 -m”歷史節(jié)點(diǎn)添加tag” 801be2a
案例演示2:
在上面基礎(chǔ)上,提交兩次:
列出所有tag:
4、查看某個(gè)標(biāo)簽的詳細(xì)信息:git show 標(biāo)簽名
5、回溯至標(biāo)簽所在的提交:git checkout 標(biāo)簽名
查看有哪些標(biāo)簽和現(xiàn)在所在標(biāo)簽:
五、分支branch(默認(rèn)分支master)
就是在主分支master上面,分出的幾條分支。
例如:一本書,主線是主人公不是富有的,在主線上分出一條故事劇情發(fā)展線,主人公變更富有的。
分支名稱可以自定義,就好像在不同分支平行的事件,可以隨意切換,非常方便。
現(xiàn)在master節(jié)點(diǎn)有2個(gè)節(jié)點(diǎn)
查看有哪些節(jié)點(diǎn)?
提交之后查看節(jié)點(diǎn):
創(chuàng)建分支:git branch 分支名:
在rich節(jié)點(diǎn)上,切換到master,回到開始分支出來的master節(jié)點(diǎn):
在master上有4個(gè)節(jié)點(diǎn),也就是4個(gè)版本:
顯示所有歷史記錄:git log --all
圖示全部歷史記錄(建議使用,如下圖所示):git log --oneline --graph --all
分支有什么用?
比如開發(fā)一個(gè)應(yīng)用,在master分支上開發(fā)了v1 v2 v3 v4個(gè)版本,在v2版本上覺得一周之后可以上線了,上線后發(fā)現(xiàn)在v2版本上有一個(gè)bug,但是在master主線上,已經(jīng)開發(fā)到v4版本,在v4版本上開發(fā)新的功能了,這時(shí)應(yīng)該怎么辦?
分支就可以解決這個(gè)問題,通過git命令切換到v2版本,在v2版本master節(jié)點(diǎn)上,建立一個(gè)分支專門修復(fù)bug,當(dāng)分支上bug修復(fù)好了,在回到master節(jié)點(diǎn)的v4版本繼續(xù)開發(fā),等開發(fā)完成,最后,合并分支,這樣新功能開發(fā)完成了,bug也修復(fù)好了。
六、合并分支branch(默認(rèn)分支master)
在v1版本上創(chuàng)建分支:git branch 分支名
也可以,創(chuàng)建并切換到創(chuàng)建的分支:git checkout -b 分支名:
回到master分支:
現(xiàn)在的情況是,在helper分支上bug已經(jīng)修復(fù)了,但是在master節(jié)點(diǎn)上,還沒有合并分支。
原則是:在上線新版本之前合并分支,修復(fù)bug
合并分支:git merge 分支名
將分支合并到當(dāng)前節(jié)點(diǎn)上
解決沖突,根據(jù)需求來就可以。
七、遠(yuǎn)程分支
版本控制(git倉(cāng)庫(kù))放在本地有一定的風(fēng)險(xiǎn)性,在遠(yuǎn)程倉(cāng)庫(kù)創(chuàng)建一個(gè)版本控制(git倉(cāng)庫(kù))。
例如:本地(local)git倉(cāng)庫(kù)也有4個(gè)版本,將本地倉(cāng)庫(kù)的4個(gè)版本推送到遠(yuǎn)程(remote)git倉(cāng)庫(kù),這樣本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)都有4個(gè)版本。
假設(shè)1:在本地新增第5個(gè)版本,只需要把第5個(gè)版本推送到遠(yuǎn)程分支上即可(不需要把整個(gè)項(xiàng)目重新進(jìn)行再次推送)。
假設(shè)2:本地這臺(tái)電腦的倉(cāng)庫(kù)掛了,換一臺(tái)電腦直接從remote倉(cāng)庫(kù),將代碼進(jìn)行拉取即可。
案例演示:
下一步找一個(gè)remote倉(cāng)庫(kù)進(jìn)行推送:
碼云進(jìn)行演示:
登錄馬云:
登錄github,新建一個(gè)倉(cāng)庫(kù),(原理和本地一樣,新建一個(gè)倉(cāng)庫(kù),并進(jìn)行初始化)
添加遠(yuǎn)程倉(cāng)庫(kù):git remote add 遠(yuǎn)程名稱 遠(yuǎn)程地址
git remote add mayun git@gitee.com:gb_90/test.git
這樣本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)就建立好連接了
列出所有遠(yuǎn)程倉(cāng)庫(kù):git remote
這樣就會(huì)把本地倉(cāng)庫(kù)連接的所有遠(yuǎn)程倉(cāng)庫(kù)都列出來
如果需要詳細(xì)信息,執(zhí)行命令:git remote -v
fetch指的是:代碼拉取(下載)地址
push指的是:代碼推送(上傳)地址
一般個(gè)人就是一個(gè)地址
上傳代碼:git push -u 遠(yuǎn)程名 分支名
git push 推送
-u:就是在服務(wù)器端設(shè)置如果下一次有人想把這代碼推送,應(yīng)該推送到哪一個(gè)分支上去合并,因此推送代碼后面要加-u,避免以后往下拉取代碼出問題。
執(zhí)行命令后,報(bào)錯(cuò) 提交失敗,意思是,你可能是第一次提交,在執(zhí)行g(shù)it push 之前,先要執(zhí)行,git pull
問題現(xiàn)象:在執(zhí)行g(shù)it pull的時(shí)候,提示當(dāng)前branch沒有跟蹤信息:
解決方案:
比如說要操作master吧,一種是直接指定遠(yuǎn)程master:
格式:git pull 遠(yuǎn)程名稱分支
例如:
發(fā)生報(bào)錯(cuò):我們拒絕,因?yàn)槟惝?dāng)前的分支是比較落后,也就是說,當(dāng)前創(chuàng)建的分支,沒有遠(yuǎn)程的分支新,現(xiàn)象是這樣的。下面進(jìn)行強(qiáng)制推送-
git push -u -f origin master 強(qiáng)制推送代碼,把matser進(jìn)行覆蓋
2、已經(jīng)成功了,將本地代碼推送到遠(yuǎn)程倉(cāng)庫(kù)
3、登錄遠(yuǎn)程,進(jìn)行驗(yàn)證
4、git branch 查看本地分支
git branch -r 查看遠(yuǎn)程分支
再次測(cè)試驗(yàn)證:
驗(yàn)證成功!!!
本地倉(cāng)庫(kù)刪除,從遠(yuǎn)程拉取代演示:
克隆(拷貝)倉(cāng)庫(kù):git clone 倉(cāng)庫(kù)地址
如果使用git clone 鏈接 這個(gè)克隆命令
他會(huì)默認(rèn)為將遠(yuǎn)程倉(cāng)庫(kù)設(shè)置為你克隆的地址,不需要你再去設(shè)置。代碼拉取的地址
注:不是mayun對(duì)嗎?默認(rèn)遠(yuǎn)程倉(cāng)庫(kù)名稱:origin,剛才咱們自己定義的mayun對(duì)吧,這個(gè)名稱可以自定義
如果繼續(xù)使用,mayun就會(huì)出錯(cuò)
可以查看遠(yuǎn)程名稱
把remote名稱修改為默認(rèn)的origin即可:
八、多人遠(yuǎn)程操作(重點(diǎn))
案例演示:
本地設(shè)定2個(gè)人,gb,ly,在idea開2個(gè)終端進(jìn)行模擬
gb先從remote拉取倉(cāng)庫(kù)代碼
ly從remote拉取倉(cāng)庫(kù)代碼:
gb ly分別進(jìn)入倉(cāng)庫(kù):
gb創(chuàng)建1.txt:
添加至?xí)捍鎱^(qū),提交到本地倉(cāng)庫(kù):
情景1:gb創(chuàng)建文件---->>>>>添加至?xí)捍鎱^(qū)---->>>>>
提交到本地倉(cāng)庫(kù)。這時(shí)ly本地倉(cāng)庫(kù)是沒有的,因?yàn)間b還沒有將本地的倉(cāng)庫(kù)的代碼推送到remote倉(cāng)庫(kù)。
將本地倉(cāng)庫(kù)代碼---->>>>>推送到remote倉(cāng)庫(kù)
查看remote:
查看提交記錄:
代碼已經(jīng)同步完成!!!
情景2:這時(shí)ly本地倉(cāng)庫(kù)中仍然沒有,remote倉(cāng)庫(kù)中的最新代碼
獲取遠(yuǎn)程更新:git pull 意思是拉取、下載
這樣gb ly 2個(gè)倉(cāng)庫(kù)的代碼就同步了!!!!
查看具體提交信息:
git pull
未從remote拉取最新代碼,對(duì)內(nèi)容進(jìn)行修改,會(huì)報(bào)以下異常:
解決方案:
git pull
git pull命令就相當(dāng)于git fetch && git merge
git fetch只是把代碼拉取到本地,放置到已提交狀態(tài)下。
首先gbly是gb更新一次,上傳remote
ly從remote將代碼拉取到本地,修改后
總結(jié)
以上是生活随笔為你收集整理的git下载安装、验证、企业实战单机、多人协作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二篇 服务消费者(rest ribbo
- 下一篇: String类、StringBuffer