文檔地址: Pro Git
原文地址: PRO GIT 學習筆記
git config --global user.name "your user name" git config --global user.email "your email address"
設置默認的文本編輯器:git config --global core.editor emacs
css
git config --list
git init
git clone url
url
分ssh
和https
兩種,推薦使用ssh
。html
git status
git add 文件名或*.js/css/html...或.
cat .gitignore
git diff git diff --cached
git commit -m "提交備註信息"
git commit -a "提交備註信息"
在提交時使用git commit -a
就會把已跟蹤的已暫存文件一塊兒提交,跳過git add
步驟,即兩個命令進行合併。vue
git rm
從已跟蹤文件清單中移除並刪除工做目錄中的指定文件,先使用git status
查看跟蹤文件清單,再使用git rm
進行精準移除。react
強制移除使用git rm -f
,但不推薦使用。git
從遠程倉庫中刪除文件,使用:github
git rm --cached 文件名/*.文件後綴/文件夾...
對文件重命名或移動文件,可使用:windows
git mv file_from file_to
git log git log -p -2
-p
選項展開顯示每次提交的內容差別,用-2
顯示最近的兩次更新。服務器
單詞層面的對比,使用:frontend
git log -p -U1 --word-diff
這個命令在代碼檢查中較少使用,在圖文編輯中出現較多。ssh
顯示摘要信息,使用:
git log --stat
其餘有用的命令:
--pretty
選項能夠指定使用徹底不一樣於默認格式的方式展現提交歷史,用oneline
將每一個提交放在一行顯示,這在提交數很大時很是有用:
git log --pretty=online
format
能夠定製要顯示的記錄格式:
git log --pretty=format:"%h - %an, %ar : %s"
選項 | 說明 |
---|---|
%H |
提交對象(commit )的完整哈希字串 |
%h |
提交對象的簡短哈希字串 |
%T |
樹對象(tree )的完整哈希字串 |
%t |
樹對象的簡短哈希字串 |
%P |
父對象(parent )的完整哈希字串 |
%p |
父對象的簡短哈希字串 |
%an |
做者(author )的名字 |
%ae |
做者的電子郵件地址 |
%ad |
做者修訂日期(能夠用-date= 選項定製格式) |
%ar |
做者修訂日期,按多久之前的方式顯示 |
%cn |
提交者(committer )的名字 |
%ce |
提交者的電子郵件地址 |
%cd |
提交日期 |
%cr |
提交日期,按多久之前的方式顯示 |
%s |
提交說明 |
添加ASCII字符串表示的簡單圖形
git log --pretty=format:"%h %s" --graph
選項 | 說明 |
---|---|
-p |
按補丁格式顯示每一個更新之間的差別。 |
--word-diff |
按 word diff 格式顯示差別。 |
--stat |
顯示每次更新的文件修改統計信息。 |
--shortstat |
只顯示 --stat 中最後的行數修改添加移除統計。 |
--name-only |
僅在提交信息後顯示已修改的文件清單。 |
--name-status |
顯示新增、修改、刪除的文件清單。 |
--abbrev-commit |
僅顯示 SHA-1 的前幾個字符,而非全部的 40 個字符。 |
--relative-date |
使用較短的相對時間顯示(好比,「2 weeks ago 」)。 |
--graph |
顯示 ASCII 圖形表示的分支合併歷史。 |
--pretty |
使用其餘格式顯示歷史提交信息。可用的選項包括 oneline ,short ,full ,fuller 和 format (後跟指定格式)。 |
--oneline |
--pretty=oneline --abbrev-commit 的簡化用法。 |
按照時間做限制的命令:--since
和--until
git log --since=2.weeks
搜索條件
--author
顯示指定做者的提交--grep
搜索提交說明中的關鍵字--all-match
同時知足這兩個選項搜索條件的提交選項 | 說明 |
---|---|
-(n) |
僅顯示最近的 n 條提交 |
--since , --after |
僅顯示指定時間以後的提交。 |
--until , --before |
僅顯示指定時間以前的提交。 |
--author |
僅顯示指定做者相關的提交。 |
--committer |
僅顯示指定提交者相關的提交。 |
具體示例:
git log --pretty="%h - %s" --author=gitster --since="2018-10-01" \ --before="2008-11-01" --no-merges -- t/
git commit --amend
git reset HEAD 文件名
這條命令謹慎使用
git checkout -- 文件名
git remote
顯示對應的克隆地址
git remote -v
git remote add [shortname] url
抓取倉庫信息
git fetch [shortname]
此命令會從遠程倉庫抓取數據到本地
git fetch [remote-name]
抓取克隆的遠程倉庫的更新數據
git fetch origin
fetch
命令只是把遠程倉庫的數據抓取到本地,並不會自動合併到當前工做分支
推薦使用的拉取遠程倉庫數據,並進行數據合併操做的命令
git pull
git push origin master
git remote show [remote-name]
重命名遠程倉庫
git remote rename git remote rename vue react
移除遠程倉庫
git remote rm vue
git tag
設定條件進行搜索
git tag -l "v1.4.2.*"
git tag
git tag -a git tag -a v1.4 -m "my version 1.4"
查看相應標籤的版本信息
git show v1.4
git tag -s git tag -s v1.5 -m "my signed 1.5 tag"
git tag -v [tag-name] git tag -v v1.4.2.1
忘記了加註標籤,只要在打標籤的時候跟上對應提交對象的校驗和便可
git tag -a v1.2 9fceb02
git push origin v1.5
一次推送全部本地新增標籤
git push origin --tags
windows
系統下連續按Tab
鍵
git config --global alias.ci commit git config --global alias.st status
新建testing分支
git branch testing
切換到testing分支
git checkout testing
以上兩個命令進行合併
git checkout -b testing
Git會把工做目錄的內容恢復爲檢出某分支時它所指向的那個提交對象的快照。它會自動添加、刪除和修改文件以確保目錄的內容和當時提交時徹底同樣。
合併提交內容
git merge git checkout master git merge hotfix
刪除工做分支
git branch -d hotfix
查看衝突 git status
調用可視化的合併工具解決衝突
git mergetool
查看各個分支最後一個提交對象的信息
git branch -v
查看哪些分支已被併入當前分支
git branch --merged
查看還沒有合併的分支
git branch --no-merged
同步遠程服務器上數據到本地
git fetch origin
git push origin master
在遠程分支上分化出新的分支:
git checkout -b serverfix origin/serverfix
git checkout -b sf origin/serverfix
整合分支方法
git merge git rebase
從一個特性分支中再分出一個特性分支的歷史
git rebase --onto master server client git checkout master git merge server
一旦分支中的提交對象發佈到公共倉庫,就千萬不要對該分支進行衍合操做。
Git能夠四種主要的傳輸協議進行數據傳輸:本地協議、SSH協議、Git協議和HTTP協議。
git clone --bare my_project my_project.git
未完待續...