?
目錄
一、git概念
二、git簡史
三、git的安裝
四、git結構
五、代碼托管中心—本地庫和遠程庫的互動方式
六、初始化本地倉庫
七、git常用命令
1、add和commit命令
2、status命令
3、log命令
4、reset命令
5、hard引數、mixed引數、soft引數
6、洗掉檔案-找回本地庫洗掉的檔案
7、找回暫存區洗掉的檔案
8、diff命令
八、git中的分支
1、什么是分支
2、操作分支
九、github賬號注冊
十、初始化本地庫
十一、創建遠程庫
十二、在本地創建遠程庫地址的別名
十三、推送操作
十四、克隆操作
十五、邀請加入團隊,push操作
十六、遠程庫修改的拉取操作
一、git概念
【1】Git技術:公司必備,一定要會
【2】Git概念:
Git是一個免費的、開源的分布式版本控制系統,可以快速高效地處理從小型到大型的專案,
【3】什么是版本控制?
版本控制是一種記錄一個或若干檔案內容變化,以便將來查閱特定版本修訂情況的系統 ,【4】為什么要使用版本控制?
軟體開發中采用版本控制系統是個明智的選擇, 有了它你就可以將某個檔案回溯到之前的狀態,甚至將整個專案都回退到過去某個時間點的狀態,就算你亂來一氣把整個專案中的檔案改的改刪的刪,你也照樣可以輕松恢復到原先的樣子, 但額外增加的作業量卻微乎其微,你可以比較檔案的變化細節,查出最后是誰修改了哪個地方,從而找出導致怪異問題出現的原因,又是誰在何時報告了某個功能缺陷等等,
【5】版本控制系統的分類:
1、集中化的版本控制系統:

?
集中化的版本控制系統諸如CVS, SVN 以及Perforce 等,都有一個單一的集中管理的服務器,保存所有檔案的修訂版本,而協同作業的人們都通過客戶端連到這臺服務器,取出最新的檔案或者提交更新,多年以來,這已成為版本控制系統的標準做法,這種做法帶來了許多好處,現在,每個人都可以在一定程度上看到專案中的其他人正在做些什么,而管理員也可以輕松掌控每個開發者的權限,并且管理一個集中化的版本控制系統;要遠比在各個客戶端上維護本地資料庫來得輕松容易,
事分兩面,有好有壞,這么做最顯而易見的缺點是中央服務器的單點故障,如果服務器宕機一小時,那么在這一小時內, 誰都無法提交更新,也就無法協同作業,
2、分布式的版本控制系統
由于上面集中化版本控制系統的那些缺點,于是分布式版本控制系統面世了,
在這類系統中,像Git, BitKeeper 等,客戶端并不只提取最新版本的檔案快照,而是把代碼倉庫完整地鏡像下來,

?
更進一步,許多這類系統都可以指定和若干不同的遠端代碼倉庫進行互動,這樣,你就可以在同一個專案中分別和不同作業小組的人相互協作,

?
分布式的版本控制系統在管理專案時存放的不是專案版本與版本之間的差異.它存的是索引(所需磁盤空間很少所以每個客戶端都可以放下整個專案的歷史記錄)

?
二、git簡史
BitKeeper【1】簡史:百度百科

?
Linux--->代碼越來越多--->優化做的越來越好---->專案管理工具---->BitKeeper----->一周開發Git----->一個月之內將Linux部署到Git上---->免費、開源---->廣泛應用
三、git的安裝
【1】Git官網:
Git
附百度云盤下載地址:
鏈接:https://pan.baidu.com/s/1Y7oJK7tA3B9FS5rsWBW4oQ
提取碼:ukpz
【2】安裝
直接下一步

?

?

?

?

?

?
安裝成功之后,在桌面點擊右鍵選擇:Git Bash Here打開終端

?
四、git結構
Git結構

?
五、代碼托管中心—本地庫和遠程庫的互動方式
【1】代碼托管中心是干嘛的呢?
我們已經有了本地庫,本地庫可以幫我們進行版本控制,為什么還需要代碼托管中心呢?
它的任務是幫我們維護遠程庫,
下面說一下本地庫和遠程庫的互動方式,也分為兩種:
(1)團隊內部協作

?
(2)跨團隊協作
跨團隊協作

?
【2】托管中心種類:
局域網環境下: 可以搭建 GitLab服務器作為代碼托管中心,GitLab可以自己去搭建
外網環境下:可以由GitHub或者Gitee作為代碼托管中心,GitHub或者Gitee是現成的托管中心,不用自己去搭建
六、初始化本地倉庫
在【Git】中的命令和Linux是一樣:
【1】清屏 clear
【2】查看目錄結構 ll
【3】查看安裝Git的版本 git --version
【初始化本地倉庫】
【1】打開Git Bash Here
【2】注冊身份(簽名)
設定用戶名:
git config --global user.name "jason_yu"
設定郵箱:
git config --global user.email "[email protected]"
【3】使用git init命令來進行初始化作業
【4】對應目錄中GitReps中生成一個.git的隱藏目錄
注意事項:這個本地庫中的.git目錄不要隨意洗掉或者修改,容易出問題,
七、git常用命令
1、add和commit命令
添加檔案: add 提交檔案:commit
【1】創建一個檔案Demo.txt

?
【2】git add把本地作業區的代碼提交到暫存區中

?
【3】git commit 從暫存區中提交到本地倉庫中
git commit -m "這是我第一次提交的Demo.txt" Demo.txt

?
注意事項:

?
1、不放到本地倉庫的檔案,是不能被git管理的;
2、即使放在本地倉庫的檔案,git也不能直接進行管理,必須通過add、commit命令把檔案提交
到本地庫中,git才能進行管理,
2、status命令
git status看的是作業區和暫存區的狀態

?
把Demo2.txt提交至暫存區

?
查看狀態:

?
再次把暫存區中的檔案提交至本地庫中

?
修改Demo2.txt中的內容

?
查看狀態:

?
使用git add再次提交檔案到暫存區中

?
使用git commit提交至本地庫

?
查看狀態

?
3、log命令
git log 可以讓我們查看提交的,顯示從最近到最遠的日志

?
當歷史記錄過多的時候,查看日志的時候,有分頁效果,分屏效果,一頁展示不下:

?
下一頁:空格
上一頁:b
顯示末尾:end

?
退出:q
日志顯示方式:
【1】方式1:git log --->分頁
【2】方式2:git log --pretty=oneline

?
【3】方式3:git log --oneline

?
【4】方式4:git reflog
多了一個引數:HEAD@{數字}
數字的含義:當前HEAD指標回到指定歷史版本需要走的步數, 
?
4、reset命令
reset命令:前進或者后退歷史版本
復制:在終端中選中就是復制了
粘貼: 右鍵:paste

?
5、hard引數、mixed引數、soft引數
【reset引數】
1、【hard】git reset --hard
特點:當本地庫中的指標發生偏移的時候,那么暫存區會重置,而且作業區也會重置,

?
2、【mixed】git reset --mixed
特點:當本地庫中的指標發生偏移的時候,那么暫存區會重置,而作業區不動,

?
3、【soft】git reset --soft
特點:當本地庫中的指標發生偏移的時候,暫存區和作業區都不動,

?
【結論】我們作業的時候,--hard用的最多,
6、洗掉檔案-找回本地庫洗掉的檔案
【1】創建一個檔案Test.txt
【2】使用add添加到暫存區
【3】使用commit提交到本地庫

?
【4】洗掉作業區的檔案

?
【5】同步作業區和暫存區的狀態

?
【6】查看日志

?
【7】找回本地庫中洗掉的檔案:實際上就是把指標指到添加的那個歷史版本就可以了,

?

?
7、找回暫存區洗掉的檔案
【1】洗掉作業區的檔案

?
【2】同步暫存區的檔案
使用add添加到暫存區
【3】后悔了:實際上就是把指標指到添加的那個歷史版本就可以了,
8、diff命令
【1】先創建一個檔案,添加到暫存區,再提交到本地庫:

?

? 【2】更改作業區中Test3.txt中內容,增加內容:

?
導致:作業區 和 暫存區 不一致,比對:

?
總結: git diff [檔案名] ---》 將作業區中的檔案和暫存區中檔案進行比較
多個檔案的比對:

?
總結:git diff --->比較作業區中和暫存區中 所有檔案的差異
比較暫存區和本地庫中差別:

?

?
git diff [歷史版本][檔案名] ---》比較暫存區和本地庫中內容
八、git中的分支
1、什么是分支
【1】什么是分支:
在版本控制程序中,使用多條線同時推進多個任務,這里面說的多條線,就是多個分支,
【2】通過一張圖展示分支:

?
【3】分支的好處:
同時多個分支可以并行開發,互相不耽誤,互相不影響,提高開發效率
如果有一個分支功能開發失敗,直接洗掉這個分支就可以了,不會對其他分支產生任何影響,
2、操作分支
1)查看、創建、切換分支
【1】在作業區創建一個Test4.txt檔案,然后提交到暫存區,提交到本地庫:

?

?
【2】查看分支:

?
【3】創建分支,再查看:

?
【4】切換分支再查看:

?
2)沖突問題--如何解決沖突問題
【1】進入branch01分支,增加內容:

?

?
【2】將分支切換到master:

?

?
然后在主分支下 加入內容:

?

?
【3】再次切換到branch01分支查看:

?
【4】將branch01分支 合并到 主分支 :
(1)進入主分支:

?
(2)將branch01中的內容和主分支內容進行合并:

?
查看檔案:出現沖突:

?
解決:
公司內部商議解決,或者自己決定 人為決定,留下想要的即可:

?
將作業區中內容添加到暫存區:

?
然后進行commit操作:

?
九、github賬號注冊
官網:https://github.com/
注冊賬號

?

?

?
當你創建resp庫的時候會讓你驗證一封郵件,進入你自己的郵箱,點一下就ok!
修改頭像

?

?
下一步自己嘗試做一下,
十、初始化本地庫
本地庫和遠程庫的互動方式

?
【1】創建本地庫
mkdir GitResp2

?
【2】初始化本地庫

?
【3】創建一個檔案Demo.txt

?
【4】提交至暫存區和本地庫

?
十一、創建遠程庫
【1】new respository

?
【2】進入遠程庫創建頁

?
遠程庫地址:https://github.com/jason1983-git/GitResp2.git
十二、在本地創建遠程庫地址的別名
遠程庫的地址:

?
點擊進入:

?
遠程庫地址比較長,每次復制比較麻煩
https://github.com/jason1983-git/GitResp2.git
在Git本地將地址保存,通過別名
查看別名:

?
起別名:

?
十三、推送操作

?
推送成功以后,查看自己的遠程庫:

?
十四、克隆操作
遠程庫地址復制:

?
克隆操作:

?
克隆操作可以幫我們完成:
(1)初始化本地庫
(2)將遠程庫內容完整的克隆到本地
(3)替我們創建遠程庫的別名:

?
十五、邀請加入團隊,push操作

?
【1】更新本地庫資訊:

?
【2】push內容到遠程庫中去:
發現可以直接push進去,并沒有讓我錄入賬號密碼,或者也沒有提示錯誤 - --》結果 很詭異
原因:git在本地會有快取
清除本地快取

?
現在再次重新push,發現出錯了:

?
必須要加入團隊:
登錄專案經理的賬號,邀請普通成員:

?

?

?
登錄被邀請者的賬號,接收邀請:(在地址欄錄入邀請鏈接即可: )

?

?
使用專案經理的賬號查看遠程庫的狀態

?
十六、遠程庫修改的拉取操作
【1】拉取操作 pull操作,相當于 fetch+merge

?
【2】專案經理先確認遠程庫內容是否更新了:

?

?
【3】專案經理進行拉取:
(1)先是抓取操作:fetch:

?
在抓取操作執行后,只是將遠程庫的內容下載到本地,但是作業區中的檔案并沒有更新,作業區中還是原先的內容:

?
抓取后可以去遠程庫看看內容是否正確:

?
然后發現內容都正確,就可以進行合并操作了:

?
合并之前應該將分支切換回來:

?
(2)進行合并:merge:

?
--------------------------------------------------------------------------------------------------------------------------------
遠程庫的拉取可以直接利用pull命令來完成:

?
fetch+merge操作:---》為了保險期間,慎重
pull --->代碼簡單,比較省事
未完待續,敬請期待... ...
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/394916.html
標籤:Java
下一篇:Spring5 學習筆記
