一、寫在前面
Git是一個開源的分布式版本控制系統,用于靈活高效地處理任何或小或大的項目。發明人就是大名鼎鼎的Linus ,發明初衷為了幫助管理 Linux 核心開發而開發的一個開放源碼的版本控制軟體。需要知道的是Git底層檔案驗證采用的是SHA-1,(SHA-1)雜湊演算法可以被用來驗證檔案。雜湊演算法有如下特點:
1、不管輸入資料的資料量有多大,輸入同一個雜湊演算法,得到的加密結果長度固定
2、雜湊演算法确定,輸入資料确定,輸出資料能夠保證不變
3、雜湊演算法确定,輸入資料有變化,輸出資料一定有變化,而且通常變化很大
4、雜湊演算法不可逆
二、Git的優勢
- 大部分在本地完成,不用聯網
- 完整性保證
- 盡可能添加資料而不是删除和修改資料
- 分支操作非常快速劉闖
- 和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## 十五、寫在最後
如果有想要學習資源的話歡迎評論咨詢!