天天看點

分布式版本控制工具——Git

一、寫在前面

Git是一個開源的分布式版本控制系統,用于靈活高效地處理任何或小或大的項目。發明人就是大名鼎鼎的Linus ,發明初衷為了幫助管理 Linux 核心開發而開發的一個開放源碼的版本控制軟體。需要知道的是Git底層檔案驗證采用的是SHA-1,(SHA-1)雜湊演算法可以被用來驗證檔案。雜湊演算法有如下特點:

1、不管輸入資料的資料量有多大,輸入同一個雜湊演算法,得到的加密結果長度固定

2、雜湊演算法确定,輸入資料确定,輸出資料能夠保證不變

3、雜湊演算法确定,輸入資料有變化,輸出資料一定有變化,而且通常變化很大

4、雜湊演算法不可逆

二、Git的優勢

  1. 大部分在本地完成,不用聯網
  2. 完整性保證
  3. 盡可能添加資料而不是删除和修改資料
  4. 分支操作非常快速劉闖
  5. 和Linux指令全面相容

三、Git的基本結構

工作區:寫代碼的地方

暫存區:Git臨時存儲的地方

本地庫:Git存放的曆史版本

四、本地庫和遠端庫

區域網路:GitLab

外網:GitHub、碼雲

1、團隊内部協作:

push:本地庫送出到遠端庫

pull:拉取遠端庫代碼到本地庫,包括兩個操作fetch(拉取)+merge(合并)拉取并合并,就是将遠端庫的代碼更新到本地庫

clone:将遠端庫所有東西下載下傳到本地,并且建立本地庫

2、跨團隊協作

如需要在被人的GitHub倉庫送出自己的修改,跨團隊協作

fork:複制一份别人的代碼在自己的遠端庫

pull request:拉取請求,發送自己的修改

merge:合并儲存

五、本地庫初始化

”指令:git init

注意:.git目錄不能删除

六、設定簽名

1、作用:在你送出代碼的時候作為一個辨別,代表這是你送出的代碼,這裡的簽名和遠端庫上面的賬号和密碼沒有任何關系

2、指令

指令
git comfig user.name 你的簽名
git config user.email 你的郵箱
           

3、注意:簽名分兩種:

項目級别:也叫倉庫級别,僅在目前本地庫範圍内有效,git gonfig指令

系統級别:目前作業系統的使用者有效,git config --global

**優先級:就近原則

4、檢視簽名

倉庫級别:
cat .git/config
系統級别:
cat `/.gitconfig           

七、常用指令

git status:檢視工作區、暫存區狀态
git add 檔案名:添加檔案到暫存區
git add *:添加所有檔案到暫存區
git rm --cached 檔案名:将暫存區恢複到工作區
git commit -m"送出日志" 檔案名:送出檔案到本地庫
git commit -a -m"送出日志" :添加所有檔案到本地庫
           

八、曆史記錄

1、檢視曆史記錄

git log

git reflog 簡潔的檢視曆史記錄,HEAD值簡單化

2、多層顯示控制方式

空格向下切換

b向上翻頁

q退出

九、版本前進後退

1、基于索引值操作

git reset --hard 索引值

git help 具體指令:檢視幫助

2、reset指令的三個參數對比

--sert:僅僅在本地庫移動HEAD指針

--mixed:從本地庫移動指針,重置暫存區

--hard:本地庫移動指針,重置暫存區,重置工作區

## 十、删除後找回

一定要明确一點就是,你從本地庫或者工作區删除了檔案,一定要将删除的操作add和commit 到本地庫才可以找回相關檔案。

git reset--hard 指針位置

## 十一、比較檔案差異

git diff:工作區和暫存區比較

git diff HEAD 檔案名:本地庫和曆史版本比較,不帶檔案名是比較多個檔案

## 十二、git的分支

1、什麼是分支

版本控制中, 使用多條分支同時推進多個任務

2、檢視所有分支

git branch -v

3、建立分支

git branch 分支名

4、切換分支

gitcheckout 分支名

5、合并分支

第一步L切換到被合并分支

第二步:執行git merge 分支名

6、解決分支沖突

删掉相關标記

git add 檔案名:标記為已解決

git commit -m“”“”:送出解決沖突

注意:送出的時候不能帶檔案名

## 十三、GitHub

1、給遠端庫URL建立别名

git remote add 别名 遠端倉庫URL

2、檢視遠端倉庫位址别名

git remote -v

3、推送到遠端庫

git push 别名 分支名

4、克隆遠端倉庫内容到本地

git clone 遠端位址别名

注意:克隆會晚會智能的把遠端庫下載下傳到本地,建立origin遠端位址的别名,并且會初始化本地庫

5、抓取:将遠端分支放到本地

git fetch 别名 分支名

6、合并

将遠端分支合并到本地庫

git merge 悲鳴/分支名

7、抓取并合并

git pull 别名 分支名

## 十四、ssh免密登入和eclipse下的git操作

這個可以直接通路倉庫,對應資源可以下載下傳

https://github.com/freestylefly/javaStudy/tree/master/Git%26GitHub

## 十五、寫在最後

如果有想要學習資源的話歡迎評論咨詢!

繼續閱讀