git安裝
Linux上安裝git
在linux上建議用二進制的方式來安裝git,可以使用發行版包含的基礎軟件包管理工具來安裝。
- 紅帽系
sudo yum install git
- Debian系
sudo apt install git
Windows上安裝git
- 去官網下載和操作系統位數相同的安裝包.
- 或者可以直接安裝GitHub for Windows。該安裝程序包含圖形化和命令行版本的 Git。 它也能支持Powershell,提供了穩定的憑證緩存和健全的換行設置。 你可以在GitHub for Windows 網站下載
Mac上安裝git
- 通過
homebrew
安裝git,brew install git
。 - 通過
Xcode
安裝git,在AppStore重安裝Xcode,Xcode默認集成了Git。運行Xcode選擇菜單Xcode
->Preferences
,在彈窗中找到Download
,選擇Command Line Tools
,點"Install"就可以完成安裝了。
為什么要版本管理
- 版本管理有一個中央服務器,可以保存所有代碼、文檔
- 每一次的修改都可以提交到版本庫,修改有記錄,可追蹤
- 不害怕某個同事離職了,代碼沒有入庫
- 本地的代碼流失后,可以從版本庫檢出
- 多人協作,每個同事完成的工作提交到版本庫,方便進行集成
- 當我們要開發需求或修復PR時,可以從版本庫上拉出分支管理
- 在大的企業,每次提交都可能觸發一次構建,實時檢查代碼的質量
- 如果構建失敗了,可以自動revert掉某次提交
配置git
當安裝完 Git 應該做的第一件事就是設置你的用戶名稱與郵件地址。 這樣做很重要,因為每一個 Git的提交都會使用這些信息,并且它會寫入到你的每一次提交中,不可更改:
git config --global user.name "lennlouis"
git config --global user.email "lennlouis@tom.com"
- 如果使用了
--global
選項,那么該命令只要運行一次,之后無論在該系統上做任何事情,git都會使用那些信息。當你想針對特定的項目使用不同的name email
那就在那個項目的目錄下運行沒有--global
選項的命令配置。 - 很多 GUI 工具都會在第一次運行時幫助你配置這些信息。
- 你也可以使用
git config --list
來查看git的所有配置。
獲取幫助
若你使用 Git 時需要獲取幫助,有三種方法可以找到 Git 命令的使用手冊:
git help <verb>
git <verb> --help
man git-<verb>
- 例如獲得
config
的命令手冊,執行:
git help config
- 官方文檔
創建倉庫
什么是倉庫呢?就是可以用git管理的一個目錄,這個倉庫里所有的文件的改動(增加/修改/刪除)都由git跟蹤記錄。也能通過git查看所有的記錄,當然也能夠通過git“還原”到某個記錄點。
mkdir git_test
cd git_test
git init
上面三個步驟就可以創建一個空的倉庫了,這個時候會在倉庫目錄下多了一個.git目錄,.git目錄里由很多關于git管理的文件,有了倉庫之后,我們就可以使用git add和git commit向倉庫添加要跟蹤的文件,和提交修改的內容了。
git add
在倉庫里剛新建的文件是不會被跟蹤起來的,比如我們使用git status
就能查看到文件的狀態,需要使用git add
才可以。(為了演示需要我創建幾個文件)
向暫存區添加文件
git add . # 將所有修改添加到暫存區
git add *.cpp # 將以.cpp結尾的文件的所有修改添加到暫存區
git add hello* # 將所有以Hello開頭的文件的修改添加到暫存區,例如: helloWorld.txt,hello.h,helloGit.md ...
git add hello?.* # 將以hello開頭后面只有一位的文件提交到暫存區 例如:hello1.txt,helloA.cpp 如果是helloGit.txt和hello.cxx是不會被添加的。
刪除暫存區文件
使用git rm -rf
或者git rm --cached
把文件從暫存區刪除,不是從磁盤刪除,只是不被git管理而已。
git commit
git add
只是把文件添加到暫存區而已,并沒有真正跟蹤起來,需要使用git commit
命令提交到倉庫才能真正被git跟蹤記錄,git commit
命令的用法如下:
git commit -a -m "initial commit" #把暫存區和當前已被跟蹤的文件的所有的修改提交到倉庫里,-m參數指定了此次提交的message內容
git commit Makefile helloworld.cpp -m "修改編譯文件,添加了helloworld.cpp"
優雅地提交修改
git commit file1.name file2.name file3.name .. -m "commit message"
commit指提交修改到本地的倉庫里,file*.name指的是帶commit的文件 –m后面的內容指提交的信息,即備注。
git commit -a -m "commit message"
添加的-a參數會把當前暫存區里所有的修改(包括刪除操作)都提交,但是那些尚未添加到暫存區的內容是不會提交的,網上有很多的博客內容說-a參數會把尚未add的文件也提交了,這個說法是錯誤的。
git commit --amend
把此次提交追加到上一次的commit內容里。
Angular團隊規范
- message格式
<type>(<scope>): <subject>
<BLANK LINE> # 標題行:必填,描述主要修改類型和內容
<body> # 主題內容:描述為什么修改,做了什么修改,開發思路等
<BLANK LINE> # 頁腳注釋:放Breaking Changes或Closed Issues
<footer>
-
Type分類:
- feat:新特性
- fix:問題修改
- refactor:代碼重構
- docs:文檔修改
- style:代碼格式修改,注意不是
css
修改 - test:測試用例修改
- chore:其他修改,比如構建流程,依賴管理
-
scope:
commit
影響范圍,即影響了什么模塊或者組件,比如:route,component,utils,build等 -
subject:
commit
概述,建議符合50/72 formatting -
body:
commit
具體修改內容,可以分為多行,建議符合50/72 formatting -
footer:一些備注,通常是
BREAKING CHANGE
或修復的bug鏈接
,或者feature
等其他信息
使用git commit模版規范提交
- 在
~/.gitconfig
文件里添加
[commit]template = ~/.gitmessage
- 添加
~/.gitmessage
文件
<feat>(<>): <提交描述><body><footer># - type: feat(新特性), fix(修改問題), docs(文檔修改), style(代碼格式修改, 注意不是 css 修改), refactor(代碼重構), test(測試), chore(其他修改, 比如構建流程, 依賴管理)
# - scope: (可以為空)影響的的范圍
# - subject提交描述
推薦課程:https://xxetb.xetslk.com/s/3oyV5o