Git基礎

Git基礎

版本控制

版本迭代

管理全部文件和修改歷史html

方便回溯linux

重要做用

  • 實現跨區域多人協同開發
  • 追蹤和記載一個或者多個文件的歷史記錄
  • 組織和保護你的源代碼和文檔
  • 統計工做量
  • 並行開發、提升開發效率
  • 跟蹤記錄整個軟件的開發過程
  • 減輕開發人員的負擔,節省時間,同時下降人爲錯誤

常見的版本控制工具

  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visual Studio Online

版本控制分類

1.本地版本控制

本地我的使用git

請添加圖片描述

缺點:(很明顯)數據庫

請添加圖片描述

2.集中版本控制

全部的版本數據都保存在服務器上緩存

協同開發者從服務器上同步更新或上傳本身的修改安全

請添加圖片描述

缺點:bash

1.本地只有同步版本,不鏈接服務器看不到歷史版本服務器

2.服務器崩掉的風險(雖然能夠按期備份)ssh

表明產品:SVN分佈式

3.分佈式版本控制

全部版本信息所有同步到本地的每一個用戶

每一個用戶保存全部版本數據

不會因服務器損壞而不能工做

請添加圖片描述

缺點:每一個人都有所有代碼——安全隱患(從刪庫到跑路)

表明產品:Git

Git歷史

爲Linux內核開源項目服務

一開始Bitkeeper商業公司提供分佈式控制系統

後面懂的都懂(膜拜大佬)

Git環境配置

1.開始菜單

請添加圖片描述

2.任意位置文件夾右鍵

Git Bash:Unix與Linux風格的命令行,使用最多,推薦最多

Git CMD:Windows風格的命令行

Git GUI:圖形界面的Git,不建議初學者使用,儘可能先熟悉經常使用命令

基本的Linux命令學習

1)cd_
改變目錄

2)cd_..
回退到上一個目錄,直接cd進入默認目錄

3)pwd
顯示當前所在的目錄路徑

4)ls或ll
列出當前目錄中的全部文件
ll列出的內容更爲詳細

5) touch_
新建一個文件
如touch index.js會在當前目錄下新建一個index.js

6)rm
刪除一個文件
rm index.js就會把index.js文件刪除。

7)rm—r
刪除一個文件夾
rm—r src即刪除src目錄

【rm-rf / 刪除根目錄(切勿在Linux中嘗試)】

8)mkdir
新建一個文件夾

9) mv
移動文件
mv index.html src 
index.html是咱們要移動的文件,
src是目標文件夾

10)reset
從新初始化終端/清屏(相似clear)

11)clear
清屏(即Dos裏的cls)

12)history
查看命令歷史

13)help
幫助

14)exit
退出

15)#
表示註釋

Git配置

查看配置git config -l

請添加圖片描述

#查看系統config
git config --system --list

#查看當前用戶(global)配置
git config --global --list

全部的配置文件都保存在本地

1 )

Git\etc\gitconfig : Git安裝目錄下的gitconfig --system系統級

請添加圖片描述

C:\Users\Administrator\ .gitconfig

只適用於當前登陸用戶的配置 --global 全局

請添加圖片描述

這裏能夠直接編輯配文件,經過命令設後會響應到這裏

配置代碼

git config --global user.name "用戶名"   #名稱
git config --global user.email "@.com"  #郵箱

必需要作

Git基本理論

核心

工做區域

Git本地有三個工做區域

1.工做目錄( Working Directory)

2.暫存區(Stage/Index)

3.資源庫(Repository或Git Director)

若是在加上遠程的git倉庫( Remote Directory)就能夠分爲四個工做區域

文件在這四個區域之間的轉換關係以下

請添加圖片描述

  • Workspace:

工做區,就是你平時存放項目代碼的地方

  • Index/ Stage:

暫存區,用於臨時存放你的改動

事實上它只是一個文件,保存即將提交到文件列表信息

  • Repository:

倉庫區(或本地倉庫),就是安全存放數據的位置,這裏面有你提交到全部版本的數據

其中HEAD指向最新放入倉庫的版本

  • Remote:

遠程倉庫,託管代碼的服務器,能夠簡單的認爲是你項目組中的一臺電腦用於遠程數據交換

請添加圖片描述

工做流程

git通常工做流程

1.在工做目錄中添加、修改文件

2.將須要進行版本管理的文件放入暫存區域

3將暫存區域的文件提交到git倉庫

即git管理的文件三種狀態:

已修改( modified)

已暫存( staged)

已提交(committed)

Git項目搭建

建立工做目錄與經常使用指令

工做目錄( WorkSpace)即Git幫助你管理的文件夾

能夠是你項目的目錄,也能夠是一個空目錄(建議不要有中文)

平常以下

請添加圖片描述

本地倉庫搭建

建立本地倉庫的方法有兩種:

一種是建立全新的倉庫,另外一種是克隆遠程倉庫

建立全新的倉庫
#在當前目錄新建一個Git代碼庫
git init

僅僅在項目目錄多出了一個git

關於版本等的全部信息都在這個目錄

克隆遠程目錄

因爲是將遠程服務器上的倉庫徹底鏡像一份至本地

#克隆一個項目和它的整個代碼歷史(版本信息)
git clone [url]

Git文件操做

文件的四種狀態

版本控制就是對文件的版本控制

要對文件進行操做,首先要知道文件狀態

否則可能會提交了如今還不想提交的文件,或者要提交的文件沒提交上

  • Untracked:

    未跟蹤此文件在文件夾中

    但並無加入到git庫,不參與版本控制

    經過git add狀態變爲Staged

  • Unmodify:

    文件已經入庫,未修改

    即版本庫中的文件快照內容與文件夾中徹底一致

    這種類型的文件有兩種去處

    • 若是它被修改而變爲Modified

    • 若是使用git rm移出版本庫,則成爲Untracked文件

  • Modified:

    文件已修改,僅僅是修改,並無進行其餘的操做

    這個文件也有兩個去處經過

    • git add可進入暫存staged狀態

    • 使用 git checkout則丟棄修改過返回到 unmodify狀態

      這個 git checkout即從庫中取出文件,覆蓋當前修改

  • Staged:

    • 暫存狀態執行 git commit則將修改同步到庫中

    這時庫中的文件和本地文件又變爲一致

    • 文件爲Unmodify狀態執行 git reset HEAD filename取消暫存,文件狀態爲Modified
git add
#添加全部文件到緩存區

git commit -m "消息內容"
#添加緩衝區內容到本地倉庫

查看文件狀態

#查看指定文件狀態
git status [filename]

#查看全部文件狀態
git status

忽略文件

不須要歸入版本控制的文件

如數據庫文件、臨時文件、設計文件

在主目錄下創建". gitignore"文件,此文件有以下規則

  • 忽略文件中的空行或以井號(#)開始的行將會被忽略

  • 可使用 ILinux通配符

    例如:

    星號(*)表明任意多個字符

    問號(?)表明一個字符

    方括號([abc])表明可選字符範圍

    大括號({ string1, string2…})表明可選的字符串等

  • 若是名稱的最前面有一個感嘆號(!),表示例外規則,將不被忽略

  • 若是名稱的最前面是一個路徑分隔符(/),表示要忽略的文件在此目錄下,而子目錄中的文件不忽略

  • 若是名稱的最後面是一個路徑分隔符(/),表示要忽略的是此目錄下該名稱的子目錄,而非文件(默認文件或目錄都忽略)

*.txt       #忽略全部.txt結尾的文件
!lib.txt    #但1ib.txt除外
/temp       #僅忽略項目根目錄下的TODO文件,不包括其它目錄temp
build/      #忽略bui1d/目錄下的全部文件
doc/*.txt   #會忽略doc/notes.txt但不包括doc/ server/arch.txt

IDEA參考設置

請添加圖片描述
請添加圖片描述

平臺操做

公鑰

#生成公鑰
ssh-keygen -t rsa

IDEA集成

1.新建項目,綁定git

  • 將咱們遠程的git文件目錄拷貝到項目中

請添加圖片描述

2.修改文件,使用IDEA操做git

3.提交測試

Git分支

#查看分支
git branch

#查看遠程分支
git branch -r

#新建分支(但仍然在當前分支)
git branch [branch-name]

#新建分支並切換到改分支
git branch -b [branch]

#合併指定分支到當前分支
git merge -b [branch]

#刪除分支
git branch -d [branch-name]

#刪除遠程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]

多個分支並行進行(容許多版本)

若是衝突,協商修改便可

master主分支應很是穩定,用來發布新版本,通常狀況下不容許在上面工做

工做通常在新建的dev分支上工做,代碼穩定後合併到主分支master

最後: 筆記中大多數內容源於狂神的免費課程https://space.bilibili.com/95256449 ,在此表達由衷感謝。

相關文章
相關標籤/搜索