天天看點

Git使用指令整理

本人正在整理積累編碼過程中的各方面知識,歡迎大家來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中文版