git版本控制系統更新

版本控制系統:

1、概念:

版本控制系統(Version Control System):是一種記錄一個或若干文件內容變化,以便未來查閱特定版本修訂狀況的系統。css

2、版本控制系統分類

一、本地版本控制系統

在本地記錄文件內容變化狀況。html

缺點:不能進行多人協做git

二、集中式版本控制系統

有一箇中央服務器,專門用於管理代碼,全部人經過中央服務器,進行代碼同步。【表明:SVN 版本控制】github

優勢:解決了多人協做問題安全

缺點:太過於依賴中央服務器,與網絡。bash

三、分佈式版本控制系統

分佈式版本控制系統就是一個專門用於管理代碼的遠程倉庫,每一個人本地都有一個遠程倉庫的完整鏡像。服務器

優勢:解決多人協做開發問題,不是特別依賴遠程倉庫,不是特別依賴網絡。【也不是不依賴】網絡

3、git 基本入門

注意 git 的安裝:(1)不能安裝在中文目錄(2)最好不使用桌面管理軟件【360,百度殺毒等等】ssh

一、git 的三個區

工做區:咱們寫代碼的地方編輯器

暫存區:暫時存儲的區域,git 中的代碼不能直接從工做區存儲到倉庫中,須要現將其添加到暫存區,再從暫存區添加到倉庫【目的是爲了不錯誤操做】

倉庫區:將暫存區的代碼轉存到 git 倉庫中,生成版本號。

二、git 基本命令

【2.1】git status:查看文件狀態【紅色表示再工做區,綠色表示再暫存區 】

【2.2】git status -s: 簡化日誌輸出格式

【3.1】git add 文件名/目錄名:將文件從工做區添加到暫存區

【3.2】git add . :將當前目錄下全部文件一次性提交到暫存區 【git add -A 或 git add -all】

# 將index.html添加到暫存區
git add index.html

# 將css目錄下全部的文件添加到暫存區
git add css

# 將當前目錄下全部的js文件添加到暫存區
git add *.js

# 添加當前目錄下全部的文件
git add .
git add -A
git add --all

【4.1】git commit -m "提交說明":將文件從暫存區添加到倉庫區,生成版本號。

【4.2]git commit -a -m "提交說明"(快速提交,以前有提交過文件)

【4.3】git commit --amend -m "提交說明":若是提交說明輸入錯了,修改使用命令。

# 將文件從暫存區提交到倉庫
git commit -m "提交說明"

# 若是不寫提交說明,會進入vi編輯器,沒有寫提交說明,是提交不成功的。
git commit   # 須要使用vi輸入內容

# 若是是一個已經暫存過的文件,能夠快速提交,若是是未追蹤的文件,那麼命令將不生效。
git commit -a -m '提交說明'

# 修改最近的一次提交說明, 若是提交說明不當心輸錯了,可使用這個命令
git commit --amend -m "提交說明"

【5】git config(配置)

【5.1】第一次提交配置:

git config user.name 你的目標用戶名

git config user.email 你的目標郵箱名

【5.2】 使用--global 參數,配置全局的用戶名和郵箱,只須要配置一次便可。推薦配置 github 的用戶名和密碼

git config --global user.name *****
git config --global user.email ****

【5.3】git config --list:查看配置信息

【6.1】git log:查看提交的日誌

【6.2】git log --oneline:查看簡潔的日誌

三、git 的對比

【1】git diff:查看工做區與暫存區提交內容的不一樣

【2】git diff --cached:查看暫存區與倉庫區內容的不一樣

【3】git diff HEAD:查看工做區與倉庫區內容的不一樣(HEAD 表示最新一次的提交)

【4】git diff 版本 1 版本 2:查看兩個版本之間的不一樣

四、git 的重置

【1】git reset:版本回退,將代碼恢復到提交過得某一個版本中

【2】git reset --hard 版本號:將代碼回退到某一個指定的版本(置三個區)

【3】git reset --soft 版本號:只重置倉庫區

【4】git reset --mixed 版本號:重置倉庫區與暫存區(默認)

【5】git reflog:查看全部版本信息(使用git log只能看到當前版本以前的信息)

【6】git reset --hard head~1:將版本回退到上一次提交狀態

  • ~1:上一次提交
  • ~2:上上次提交
  • ~0:當前提交

五、git 忽視文件

【忽視文件建立須要在編譯器中建立,否則會報錯】

在倉庫中,有一部分文件是不想被 git 管理的,好比數據的配置密碼,寫代碼的一些思路等等,git 能夠經過配置忽略一些文件,這樣文件就不用提交了。

【1】方法:注意:該文件是能夠將本身忽視的

在倉庫根目錄下建立一個.gitignore 文件,文件名固定。將不須要被 git 管理的文件路徑添加到.gitignore 中。

忽視.gitignore 文件 (.gitignore)

# 忽視idea.txt文件
idea.txt

# 忽視.gitignore文件
.gitignore

# 忽視css下的index.js文件
css/index.js

# 忽視css下的全部的js文件
css/*.js

# 忽視css下的全部文件
css/*.*
# 忽視css文件夾
css

六、git 分支操做

在 git 中,分支實質上就是一個指針,每次代碼提交後,這個分支指針就會向後移動,保證一直指向最後一次提交的版本。git 中使用 HEAD 指向當前分支

【1】每次 commit 提交,都會在倉庫區生成一個新的版本

【2】在第一次生成版本後,會自動建立一個 master 分支,指向當前版本

【3】全部的分支,本質上就是指針

【4】默認有一個 HEAD 指針永遠指向當前分支

git 分支命令

【1】git branch 分支名稱:建立分支。

【2】git branch:查看全部分支。

【3】git checkout 分支名稱:切換分支(HEAD 指針指向另外一個分支)

當前分支任何操做不會影響其餘分支。除非進行分支合併

提交代碼時,會產生版本號,當前分支會指向最新的版本號。

【4】git checkout -b 分支名稱:建立並切換分支(建立一個新分支,將 HEAD 指針指向當前分支)

【5】git branch -d 分支名稱:刪除分支(注意:不能在當前分支刪除當前分支,須要切換到其餘分支,才能夠刪除)。

【6】git merge 分支名稱:將其餘分支內容合併到當前分支。

06-分支的基本操做

07-分支強化

git 合併衝突

【1】對於同一個文件,若是有多個分支要合併,容易出現衝突。

【2】合併分支時,出現衝突須要手動處理,在進行提交。(通常將本身代碼放在衝突代碼以後便可)。

08-分支衝突

4、git 遠程倉庫

一、github 與 git【github 中文版是碼雲】

git 與 github 沒有直接的關係。

  • git 是一個版本控制工具。

  • github 是一個代碼託管平臺,開源社區,是 git 的一個遠程代碼倉庫。

    注意: 建立 git 項目時,不能有中文。

git clone

  • 做用:克隆遠程倉庫的代碼到本地
  • git 克隆默認會使用遠程倉庫的項目名字,也能夠本身指定。須要是使用如下命令:git clone [遠程倉庫地址] [本地項目名]

git push

  • 做用:將本地倉庫中代碼提交到遠程倉庫
  • git push 倉庫地址 master 在代碼提交到遠程倉庫,注意 master 分支必須寫,不能省略

git pull

  • 做用:將遠程的代碼下載到本地

  • 一般在 push 前,須要先 pull 一次。

# 獲取遠程倉庫的更新,而且與本地的分支進行合併
git pull

git remote

每次 push 操做都須要帶上遠程倉庫的地址,很是的麻煩,咱們能夠給倉庫地址設置一個別名

# 給遠程倉庫設置一個別名
git remote add 倉庫別名 倉庫地址
git remote add jepson git@github.com:jepsongithub/test.git

#刪除jepson這個別名
git remote remove jepson

#git clone的倉庫默認有一個origin的別名

SSH 免密碼登錄

git 支持多種數據傳輸協議:

  • https 協議:https://github.com/jepsongithub/test.git 須要輸入用戶名和密碼
  • ssh 協議:git@github.com:jepsongithub/test.git 能夠配置免密碼登陸

每次 push 或者 pull 代碼,若是使用 https 協議,那麼都須要輸入用戶名和密碼進行身份的確認,很是麻煩。

  • github 爲了帳戶的安全,須要對每一次 push 請求都要驗證用戶的身份,只有合法的用戶才能夠 push
  • 使用 ssh 協議,配置 ssh 免密碼,能夠作到免密碼往 github 推送代碼

5、SSH 免密碼登陸配置

注意:這些命令須要在 bash 中敲

  • 1 建立 SSH Key:ssh-keygen -t rsa
  • 2 在文件路徑  C:\用戶\當前用戶名\  找到  .ssh  文件夾
  • 3 文件夾中有兩個文件:
    • 私鑰:id_rsa
    • 公鑰:id_rsa.pub
  • 4 在  github -> settings -> SSH and GPG keys頁面中,新建立 SSH key
  • 5 粘貼 公鑰  id_rsa.pub  內容到對應文本框中
  • 5 在 github 中新建倉庫或者使用如今倉庫,拿到git@github.com:用戶名/倉庫名.git
  • 6 此後,再次 SSH 方式與 github「通訊」,不用輸入密碼確認身份了
相關文章
相關標籤/搜索