Git介紹以及基本操作
介紹
Git優勢
- 大部分操作在本地完成不需要連網;
Git是分散式的管理工具,本地就有一個倉庫並儲存了完整的版本歷史,大部分操作在本地就可以完成,這是傳統的集中式管理工具無法做的;
- 完整性儲存
Git會對每一次儲存的資料進行Hash演算法並將Hash值儲存,只要檔案不變Hash值就不變,因此操作檔案時只要對Hash值進行對比就可以判斷檔案是否變化,防止資料傳輸過程中的損壞,很好的儲存了檔案的完整性;
- 儘可能新增資料而不是刪除或修改資料
- 分支操作非常快捷流暢:隨後將詳細展開
- 與Linux命令全面相容
Git和程式碼託管中心
談論Git時避免不了經常要提到GitHub,GitHub就是一個程式碼託管中心;Git在本地有一個本地倉庫,相對於本地庫 程式碼託管中心是一個遠端程式碼庫;常見的程式碼託管中心有:Gitlab、GitHub和碼雲;在區域網中可以通過Gitlab搭建自己的程式碼託管中心,在外網環境中可以通過GitHub或者碼雲搭建託管中心;
Git命令列操作
設定簽名
- 簽名的形式:
姓名:xyz
注意點:簽名僅僅是作為不同成員的身份標識,它和登入遠端倉庫的賬號、密碼沒有任何關係
- 簽名的作用:區分出專案組中不同成員的不同身份
- 簽名級別:
1.專案/倉庫級別:僅在當前本地倉庫範圍內有效
2.系統使用者級別:登入當前作業系統的使用者範圍
- 簽名優先等級
1.專案級別優先於系統使用者級別,二者同時存在時採用專案級別;
2.如果只有系統使用者級別,以系統使用者級別的簽名為準;
3.二者都沒有,操作倉庫時Git會報錯;
-
設定專案級別簽名
命令:
git config user.name xxx
git config user.email [email protected]
設定的簽名存放在.config檔案中,可以通過"cat .config"命令檢視已設定的專案級別的簽名,如下:
-
設定系統使用者級別簽名
命令:
git config --global user.name xxx
git config --global user.email [email protected]
與專案級別簽名存放的位置不同,系統級別的簽名存放在根目錄下的.gitconfig檔案中,可以通過"cat ~/.gitconfig"命令檢視已設定的系統級別的簽名,如下:
顯示歷史記錄
- git log: 檢視歷史版本,提交資訊;
- git log --pretty=oneline (git log --oneline): 一行顯示歷史記錄;
- git reflog: [email protected]{數字} --> 數字表示要回滾到相應版本所需要的步數;
版本控制、刪除檔案找回
- git reset --hard <索引值>:將版本切換到索引值對應的版本,可前進、後退;
reset 三個引數對比:
--soft:僅僅是在本地庫移動指標;
--mixed:會在本地庫移動指標,重置快取區;
-- hard :在本地庫移動指標,重置快取區,重置工作區;
檔案比較
- git diff :和快取區中的檔案進行對比,顯示所有改變的檔案;
- git diff <檔名>: 只顯示當檔案與快取區檔案進行比較的變化;
- git diff <指標位置> <檔名> :和歷史記錄中的某個版本進行比較;
分支操作
- git branch <branch name>:拉取分支branch name;
- git checkout <branch name>:切換分支branch name;
- 合併分支:
①切換到接受合併的分支:git branch <branch name>;
②將被合併的分支merge到當前分支:git merge <branch name>;