- 創始人: Linus Torvalds
- Git官網:http://git-scm.com
- 優勢:分佈式版本控制管理
- 快照存取,不記錄不同版本之間具體的修改內容。
- 文件三種狀態:已提交(committed),已修改(modified),已暫存(stagged)
- Git資源目錄:.git
- 所有的版本控制信息存儲在此目錄,工作目錄中的內容也是從此目錄提取的。
- 幫助命令:git help [command]
- 初始化:git init [directory]
- 添加具體目錄,對該目錄進行初始化,若未添加,默認當前目錄。
- 設置例外文件:.git/info/exclude
- 若在該文件中添加“mytest/”,git將會自動排出mytest文件夾。
- 若在該文件中添加“mytest/”,git將會自動排出mytest文件夾。
- 設置追蹤忽略的文件:.gitignore
- 若添加“db/*.db”,將自動不對db目錄下所有.db後綴的文件進行追蹤。
- 若添加“db/*.db”,將自動不對db目錄下所有.db後綴的文件進行追蹤。
- 簡單設置Git:git config
- 設置基本信息
- git config --global user.name "your name"
- git config --global user.email "your email"
- git config --global color.ui true (設置log信息高亮顯示)
- 設置命令別名
- git config --global alias.st status
- git config --global alias.co checkout
- git config --global alias.mylog "log --pretty=format: '%h %s [%an]' --graph"
- git config --global alias.br branch
- git config --global alias.ci commit
- git config --global alias.st status
- 查看設置信息
- 全部:git config --list
- 具體:git config user.email
- 設置基本信息
- 添加:git add [-A] [directory or filename]
- [-A]:對所有添加,修改以及刪除的操作放入暫存區。
- 填寫目錄,將自動添加目錄下所有可被追蹤的文件。
- 填寫文件路徑,將只添加選擇的文件。
- 添加當前目錄下所有文本文件:git add '*.txt'
- 添加docs目錄下所有文本文件:git add docs/*.txt
- 刪除:git rm [filename]
- 從本地目錄中刪除文件。
- 刪除暫存區的文件(只是從git目錄中刪除,本地資源並未刪除):git rm --cached filename
- 查看所在分支狀態:git status [-s]
- [-s]:是否簡略顯示
- 查看差異信息:
- 未放入暫存區:git diff
- 放入暫存區:git diff --staged
- 查看文件差異:git diff filename1 filename2
- 查看當前狀態與最後一次提交的差異:git diff HEAD
- 查看與最後第二次提交的差異:git diff HEAD^^
- 查看與最後第五次提交的差異:git diff HEAD~5
- 查看最後兩次之間的差異:git diff HEAD^..HEAD
- 查看兩次提交之間的差異:git diff <commit1_SHA> <commit2_SHA>
- 查看兩個分支之間的差異:git diff <branch1> <branch2>
- 查看文件每行的修改信息:git blame index.html --date short
- 提交:git commit [-a] -m "some words"
- [-a]:自動暫存已追蹤文件的修改,對新添加文件不暫存。
- 日誌:
- 查看:git log
- 簡易查看:git log --pretty=oneline
- 自定義查看:git log --pretty=format:"%h %ad- %s [%an]"
- 查看簡易更新日誌:git log --oneline -p
- 查看簡易狀態日誌:git log --oneline --stat
- 查看簡易的圖形日誌:git log --oneline --graph
- 查看一段時間的日誌:
- git log --since=1.day.ago --unitl=1.minute.ago
- git log --since=2010-6-29 --unitl=2014-12-12
- 分支:
- 查看本地分支:git branch
- 查看遠程分支:git branch -r
- 新建分支:git branch branch_name
- 選擇分支:git checkout branch_name
- 選擇+新建:git checkout -b branch_name
- 刪除合併之後的分支:git branch -d branch_name
- 刪除沒有合併的分支:git branch -D branch_name
- 刪除遠程分支:git push remote_name :branch_name
- 合併分支:git merge branch_name
- 合併之前要選擇到目標分支上,一般爲項目master分支或開發分支
- 遠程庫:
- 查看遠程庫:git remote [-v]
- [-v]:用於查看遠程庫地址
- 添加遠程庫:git remote add remote_name some_url
- your_name:隨意爲該遠程庫命一個自己知道的名稱
- 常用的地址類型有https和ssh,前者需要在每次提交時填寫賬號和密碼,而後者在前期配置後提交將不需要額外信息。
- 查看遠程庫詳細信息:git remote show remote_name
- 查看遠程庫:git remote [-v]
- 與遠程庫同步:
- 拉取遠程庫:git fetch
- fetch只是拉取到.git目錄,未和本地工作目錄內容進行合併。
- 拉取遠程庫並與本地合併:git pull
- 拉取遠程庫:git fetch
- 提交代碼到遠程庫:git push [-u] remote_name branch_name
- [-u]:記錄此次遠程對象,再次同步時可以直接使用git push。
- 克隆遠程庫代碼:git clone some_url
- 建議克隆時就使用SSH地址,方便後續提交操作。
- 檢測衝突:git pull --rebase remote_branch
- 該步驟可以細分:
- git checkout branch_name
- git pull
- git rebase remote_branch
- rebase:對所有當前分支的修改於遠程庫進行比較,將比較結果存儲於臨時區域,方便修改衝突文件。
- 衝突文件格式:
- <<<<<<< HEAD
- remote version codes
- =======
- local version codes
- >>>>>>>
- <<<<<<< HEAD
- 該步驟可以細分:
Git知識積累
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.