1. 程式人生 > 其它 >request 物件和 response物件

request 物件和 response物件

Git學習筆記

1.版本控制

Git 是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案。

Git 不僅僅是個版本控制系統,它也是個內容管理系統(CMS),工作管理系統等。

分類:

  • 本地版本控制:RCS
  • 集中式版本控制:SVN、CVS、VSS
  • 分散式版本控制:Git
區別 Git SVN
是不是分散式的 分散式的 集中式的
檔案儲存方式不同 內容按元資料方式儲存,使用SHA-1 雜湊演算法 內容按檔案儲存
分支區別 可以在任意一個提交點(commit point)開啟分支,並沒有建立資料夾 分支是版本庫中的另外一個目錄。
是否有全域性的版本號 沒有
管理許可權不同 沒有嚴格的許可權管理控制,只有賬號角色劃分 相當嚴格,可以按組、個人針對某個子目錄的許可權控制
工作流程不同 開始工作前進行fetch操作,完成開發工作後push操作,有衝突解決衝突。git的提交過程不會被打斷,有衝突會標記衝突檔案 每次更改檔案之前都得update操作,有衝突,會打斷提交動作

2.Git歷史

Git 是 Linus Torvalds 為了幫助管理 Linux 核心開發而開發的一個開放原始碼的版本控制軟體。

3.Git環境配置

各個版本下載之後直接安裝,配置環境變數。

Git一般工作流程如下:

  • 克隆 Git 資源作為工作目錄。
  • 在克隆的資源上新增或修改檔案。
  • 如果其他人修改了,你可以更新資源。
  • 在提交前檢視修改。
  • 提交修改。
  • 在修改完成後,如果發現錯誤,可以撤回提交併再次修改並提交。

工作區域劃分:

  • 工作區:就是你在電腦裡能看到的目錄。
  • 暫存區:英文叫stage, 或index。一般存放在 ".git目錄下" 下的index檔案(.git/index)中,所以我們把暫存區有時也叫作索引(index)。
  • 版本庫:工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。

4.Git基本命令

linux基本命令:
cd #切換目錄
pwd	#檢視路勁
ls	#檢視目錄
clear	#清屏
等等。

git相關命令:
git config -l	#檢視所有配置
git config --system --list	#檢視系統配置
git config --global --list	#檢視當前使用者配置,使用者名稱和郵箱
設定使用者名稱與郵箱:
git config --global user.name "Ferryup"
git config --global user.email "[email protected]"

git push origin master	# 推到origin倉庫的master分支
git push -u origin master	# 將本地倉庫的master與遠端倉庫進行關聯,以後push就不用指定分支了。

git commit:是將本地修改過的檔案提交到本地庫中;
git push:是將本地庫中的最新資訊傳送給遠端庫;
git pull:是從遠端獲取最新版本到本地,並自動merge;
git fetch:是從遠端獲取最新版本到本地,不會自動merge;
git merge:是用於從指定的commit(s)合併到當前分支,用來合併兩個分支; 

5.Git專案搭建

建立倉庫的兩種方式:本地倉庫搭建、遠端倉庫搭建

本地倉庫搭建

  1. 在當前目錄右鍵開啟git bash;
  2. 輸入命令git init;
  3. 可以看到在目錄下多了一個.git隱藏資料夾,關於版本的所有資訊都在這個資料夾中。

遠端倉庫搭建

  1. 複製遠端倉庫的url;

  2. 在當前目錄開啟git bash,輸入命令git clone url;

    git clone https://github.com/MarkerHub/eblog.git
    git clone --depth=1 https://github.com/MarkerHub/eblog.git#保留最近的一次commit,克隆速度更快
    
  3. 等待之後即可把遠端倉庫克隆到本地。

6.Git常用操作

Git管理的檔案的有四種狀態

  1. 未跟蹤的(Untracked):檔案在資料夾中,但是沒有加入到倉庫中,不參與版本控制。
  2. 未修改的(Unmodified):
  3. 已修改的(Modified):修改了之後需要重新新增到倉庫中。
  4. 已暫存的(Staged):暫存狀態。
git add .	#添加當前專案的所有檔案
git commit	-m "訊息" #提交
-m引數:附帶的訊息
git status	#檢視所有檔案狀態,預設是較為詳細的顯示
git status -s	#檢視所有檔案狀態,預設是較為簡潔的顯示
git status 檔名 #檢視指定檔案的狀態

git diff	# 工作目錄和暫存區
git diff --cached	# 暫存區和本地倉庫
git diff HEAD	# 工作目錄和本地倉庫
git diff --stat	# 顯示資訊摘要

git reset HEAD --file    # 將本地倉庫的當前版本恢復到暫存區
git reset HEAD~1 --file  # 將本地倉庫的上個版本恢復到暫存區
# git rm 用來刪除檔案、目錄。git mv 命令用於移動或重新命名一個檔案、目錄。
git rm           # 將檔案從暫存區和工作目錄刪除,-f為強制刪除
git rm --cached <path> # 將檔案從暫存區中刪除
git mv <old_path> <new_path>

git log		   # 當前分支的log
git log --oneline  # 簡要log
git log --graph    # 檢視各種分支之間的日誌
git reflog 	   # 檢視所有分支的所有操作記錄(包括 reset)

git tag 		       # 檢視所有標籤
git tag -a <tagname> -m "blablabla..."  # 建立一個標籤,並附上資訊
git tag -d <tagname>    		       # 刪除本地標籤

忽略檔案

在程式碼目錄下建立.gitignore檔案。

#為註釋
*.txt	#忽略所有以.txt結尾的檔案
!lib.txt	#但是lib.txt除外
/temp	#向前忽略,僅忽略專案根目錄下的TODO檔案,不包括其他目錄temp
build/	#忽略build/目錄下的所有檔案
doc/*.txt	#忽略doc/notes.txt,但不包括doc/server/arch.txt

*.class
*.log
*.lock
### Package Files ###
*.jar
*.war
*.ear
target/
tmp/

### idea ###
.idea/
*.iml
*.ipr
*.iws
.classpath
.project
.settings/
bin/

*velocity.log*

### STS ###
.apt_generated
.factorypath
.springBean

### rebel ###
*rebel.xml*

使用SSH免密登入

  1. 進入C:\Users\qd.ssh 目錄中,開啟git bash視窗,輸入命令 ssh-keygen
  2. 可以生成兩個檔案id_rsa.pub和id_rsa,將公鑰id_rsa.pub裡面的內容貼上到網站上對應位置即可。

7.IDEA中整合Git

  1. 新建專案,繫結Git;
  • 將遠端的git檔案目錄拷貝到專案中即可。
  1. 修改檔案,使用IDEA操作Git;
  • 新增檔案到暫存區。
  • commit提交到本地。
  • push到遠端倉庫。
  1. 提交測試。

8.Git分支

git branch	#檢視本地分支
git branch	-r	#檢視遠端分支

git branch	dev	#新建一個分支dev,但是依然停留在當前分支
git checkout -b dev	#新建一個分支dev,並切換到dev分支

git branch -b dev	#切換到dev分支

git merge dev	#合併dev分支到當前分支

git branch -d dev	#刪除dev分支

git push origin --delete dev	#刪除遠端dev分支
git branch -dr dev	#刪除遠端dev分支

# 分支合併的三種方式
git merge fast-forword:當條件允許時,git 直接把 HEAD 指標指向合併分支的頭(預設)
git merge --no-ff:不適用 fast-forward 方式合併,保留分支的 commit 歷史
git merge --squash:使用 squash 方式合併,將多次分支的 commit 歷史記錄壓縮為一次