request 物件和 response物件
阿新 • • 發佈:2021-07-27
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專案搭建
建立倉庫的兩種方式:本地倉庫搭建、遠端倉庫搭建
本地倉庫搭建
- 在當前目錄右鍵開啟git bash;
- 輸入命令git init;
- 可以看到在目錄下多了一個.git隱藏資料夾,關於版本的所有資訊都在這個資料夾中。
遠端倉庫搭建
-
複製遠端倉庫的url;
-
在當前目錄開啟git bash,輸入命令git clone url;
git clone https://github.com/MarkerHub/eblog.git git clone --depth=1 https://github.com/MarkerHub/eblog.git#保留最近的一次commit,克隆速度更快
-
等待之後即可把遠端倉庫克隆到本地。
6.Git常用操作
Git管理的檔案的有四種狀態
- 未跟蹤的(Untracked):檔案在資料夾中,但是沒有加入到倉庫中,不參與版本控制。
- 未修改的(Unmodified):
- 已修改的(Modified):修改了之後需要重新新增到倉庫中。
- 已暫存的(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免密登入
- 進入C:\Users\qd.ssh 目錄中,開啟git bash視窗,輸入命令 ssh-keygen
- 可以生成兩個檔案id_rsa.pub和id_rsa,將公鑰id_rsa.pub裡面的內容貼上到網站上對應位置即可。
7.IDEA中整合Git
- 新建專案,繫結Git;
- 將遠端的git檔案目錄拷貝到專案中即可。
- 修改檔案,使用IDEA操作Git;
- 新增檔案到暫存區。
- commit提交到本地。
- push到遠端倉庫。
- 提交測試。
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 歷史記錄壓縮為一次