本人正在整理積累編碼過程中的各方面知識,歡迎大家來github上貢獻,分享。
githuo靜态頁面
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'
從版本庫恢複
遠端倉庫
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
github ignore
忽略檔案原則:
- 自動生成檔案
- 中間件
- 敏感資訊
别名
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中文版