1. 程式人生 > >Git介紹以及基本操作

Git介紹以及基本操作


介紹

Git優勢

  • 大部分操作在本地完成不需要連網;

Git是分散式的管理工具,本地就有一個倉庫並儲存了完整的版本歷史,大部分操作在本地就可以完成,這是傳統的集中式管理工具無法做的;

  • 完整性儲存

Git會對每一次儲存的資料進行Hash演算法並將Hash值儲存,只要檔案不變Hash值就不變,因此操作檔案時只要對Hash值進行對比就可以判斷檔案是否變化,防止資料傳輸過程中的損壞,很好的儲存了檔案的完整性;

  • 儘可能新增資料而不是刪除或修改資料
  • 分支操作非常快捷流暢:隨後將詳細展開
  • 與Linux命令全面相容

Git和程式碼託管中心

談論Git時避免不了經常要提到GitHub,GitHub就是一個程式碼託管中心;Git在本地有一個本地倉庫,相對於本地庫  程式碼託管中心是一個遠端程式碼庫;常見的程式碼託管中心有:GitlabGitHub碼雲;在區域網中可以通過Gitlab搭建自己的程式碼託管中心,在外網環境中可以通過GitHub或者碼雲搭建託管中心;


Git命令列操作

設定簽名

  • 簽名的形式:

姓名:xyz

郵箱:[email protected]

注意點:簽名僅僅是作為不同成員的身份標識,它和登入遠端倉庫的賬號、密碼沒有任何關係

  • 簽名的作用:區分出專案組中不同成員的不同身份
  • 簽名級別:

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>;