這是我參與8月更文挑戰的第1天,活動詳情查看:8月更文挑戰前端
經常使用的 Git 指令,一邊整理一邊複習,還順便 get 了新的指令。真 · 溫故而知新 😉git
git config --global user.name "yourname"
git config --global user.email "youremail@qq.com"
git config --global --list
git config user.name
,git config user.email
配置 ssh 後,使用ssh 地址 clone 項目,無需再輸入帳號密碼。一次配置,永久使用。😉github
檢查 ssh 是否存在markdown
cd ~/.ssh
,找到 .ssh
文件夾ls
或 ll
,查看是否存在 id_rsa.pub
cat id_rsa.pub
,獲取祕鑰若是 ssh 不存在,那就 ——ssh
生成祕鑰 ssh-keygen -t rsa -C "your-email@qq.com"
生成後就能夠經過上述方式找到 ssh,拷貝一下,接下來去 github ——oop
在 github 中添加祕鑰 點擊頭像 → Settings → SSH and GPG keys → New SSH key → 黏貼 ssh-rsa
開頭的串串 → 肯定添加 → OK啦! 🎉post
關於 ssh 的詳細操做和解說,參考: www.liaoxuefeng.com/wiki/896043…spa
git init
git remote add origin git@xxx.git
注意:關聯後第一次推送時添加 -u
參數,即:git push -u origin master
做用:-u
(--up-stream
)用來創建本地分支與遠程某個分支的關聯,造成一個管道,以後可簡化命令,直接 git push
git clone git@xxx.git
git remote -v
git remote show origin
git branch
git branch -a
git branch xxx
git checkout xxx
git checkout -b xxx
(等同依次執行上面兩個命令)git branch -d xxx
git branch -D xxx
git remote prune
git push origin --delete xxx
git merge xxx
git rebase xxx
--continue
:遇到衝突的狀況,解決衝突後 continue--skip
:跳過此次 rebase 操做拉取和推送rest
git status
git pull
git add <file>
git add .
git commit -m '備註信息'
git push
git diff
git cherry-pick <commitId>
撤銷修改日誌
git restore <file>
或 git checkout -- <file>
git restore --staged <file>
或 git reset HEAD <file>
git reset HEAD
git reset HEAD^
git reset <commitId>
git revert <commitId>
(新增一個commit抵消以前的commit)髒代碼
git stash
git stash list
git stash pop
git stash pop@{0}
git stash drop stash@{0}
代碼管理示意圖
git tag
git tag -l test**
(獲取以test
開頭的分支)git tag test-1.0.0
git tag -a test-1.0.0 -m "備註信息"
git push origin test-1.0.0
git push origin --tags
git tag -d test-1.0.0
git push origin --delete test-1.0.0
在整理文章的過程當中,發現原來 git log
有這麼多玩法,好比說 --pretty
支持自定義輸出樣式,-S
能夠按內容查詢日誌,還有個 git shortlog
,它甚至能按人員統計提交記錄、還能排序。 這可比我能想象到的強大多了。
git log master..dev
(找出 dev 比 master 多的 commit)git log
,git log dev
git log origin
,git log origin/dev
git log -S "Hello World"
git shortlog
-s
:省略註釋,僅返回一個統計數-n
:按照 commit 數量遞減輸出參數 | 說明 |
---|---|
--oneline |
格式化,一行顯示,更簡潔清晰的展現 |
--stat |
顯示每次提交的文件增刪數量 |
--graph |
圖像化展現提交歷史記錄 |
--author |
指定用戶 |
--pretty=format |
自定義輸出格式 |
--since=<date> / --after=<date> |
指定日期以後 |
--until=<date> / --before=<date> |
指定日期以前 |
查詢指定用戶某個時間區間的提交記錄: git log --author="tangjinzhou" --after="2021/6/1" --before="2021/6/30" --oneline
自定義輸出格式:git log --author="tangjinzhou" --pretty=format:"%h | %ad | %s"
自定義格式的參數說明
參數 | 說明 |
---|---|
%H | 提交對象(commit)的完整哈希字串 |
%h | 提交對象的簡短哈希字串 |
%T | 樹對象(tree)的完整哈希字串 |
%t | 樹對象的簡短哈希字串 |
%P | 父對象(parent)的完整哈希字串 |
%p | 父對象的簡短哈希字串 |
%an | 做者(author)的名字 |
%ae | 做者的電子郵件地址 |
%ad | 做者修訂日期(能夠用 |
%ar | 做者修訂日期,按多久之前的方式顯示 |
%cn | 提交者(committer)的名字 |
%ce | 提交者的電子郵件地址 |
%cd | 提交日期 |
%cr | 提交日期,按多久之前的方式顯示 |
%s | 提交說明 |
更多的
Git Log
玩法:git-scm.com/docs/git-lo…