本人正在整理積累編碼過程中的各方面知識,歡迎大家來github上貢獻,分享。
初始化操作
初始化配置
git config --global user.name "Your name"
git config --global user.email "Your email"
初始化倉庫
git init
git add
git commit -m 'comment'
狀態與差異
git status
git diff
git diff HEAD -- filename 查看工作區和版本庫裏最新版本的區別
日誌
git log --pretty=oneline 顯示提交日誌,不包括被回退
git reflog 顯示提交歷史
git log --graph --pretty=oneline --abbrev-commit 查看分支情況
回退與撤銷
git reset --hard HEAD^ HEAD表示當前版本,HEAD^^表示前2各版本 HEAD~100表示前100各版本
git reset --hard commit_id 回退到特定版本
git checkout --filename
撤銷修改,如果暫存區沒有該文件就從版本庫提取文件
git reset HEAD filename
可以撤銷暫存區的修改
文件刪除與恢復
從版本庫刪除
git rm filename
git commit -m 'delete filename'
從版本庫恢復
git checkout --filename
遠程倉庫
SSH key
ssh-keygen -t rsa -C '[email protected]'
生成ssh key
ssh -T [email protected]
測試ssh key添加成功
添加遠程倉庫
git remote add origin git_url
關聯遠程庫
git clone git_url
克隆遠程倉庫
推送
git push -u origin master
-u 在遠程和本地分支間建立聯繫,第一次建立即可
抓取分支
git checkout -b dev origin/dev
通過遠程分支創建本地分支
git branch --set-upstream dev origin/dev
建立本地分支與遠程分支的聯繫
分支
創建分支
git checkout -b dev
創建並切換分支
git branch dev
git checkout dev
git branch -d <name>
刪除分支
git branch -D <name>
刪除未合併分支
分支合併
git merge dev
合併dev 到當前分支
git merge --no-ff -m 'merge with no-ff' dev
合併時禁用 Fast Forward
Bug 分支
git stash 保存並清空工作區
git stash list 列出被保存的工作區
git stash apply 恢復保存的工作區
git stash drop 刪除保存的工作區
git stash pop 彈出保存的工作區
git stash apply stash@{0} 恢復指定的工作區
修復Bug:創建Bug分支,修復再合併。當現場有工作時,可以使用 git stash 保存
標籤
創建標籤
git tag <name>
用於新建一個標籤,默認爲HEAD,也可以指定一個commit id
git tag -a <tagname> -m "introduce"
指定標籤信息
git tag -s <tagname> -m "introduce"
PGP簽名
git tag
查看所有標籤
git show tagname
顯示標籤詳細信息
標籤操作
git tag -d v0.1
刪除標籤
git push origin <tagname>
推送標籤到遠程
git push origin --tags
推送所有標籤到遠程
刪除遠程標籤
git tag -d v0.9
先刪除本地標籤
git push origin :refs/tags/v0.9
刪除遠程分支
GitHub
自定義
git config --global color.ui true
.gitignore
忽略文件原則:
- 自動生成文件
- 中間件
- 敏感信息
別名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1'
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
global 配置文件 ~/.gitconfig
參考資料:
廖雪峯Git教程
Pro Git中文版