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'

從版本庫恢復

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

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中文版

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章