git cheatsheet
2019-06-27 本文已影响0人
shuff1e
- 给版本库自报家门
git config --global user.name "shuffle"
git config --global user.email "sfxu@foxmail.com"
- 创建版本库
git init
生成.git目录
- 分支
切换分支
git checkout -b shuffle-dev
创建远程分支
git push origin shuffle-dev:shuffle-dev
- 查看状态
git status
查看工作区的修改
git diff a.txt
-
先分清楚,工作区,暂存区,和版本库
-
工作区修改
git checkout -- a.txt
- 工作区 和 暂存区转换
git add a.txt
git reset HEAD a.txt
- 查看工作区和暂存区差别
git diff
- 暂存区 和 版本库转换
git commit -m "fix bug" a.txt
撤销的修改会回到暂存区
git reset --soft HEAD^
或者
git reset HEAD^
git reset HEAD^^
git reset HEAD~100
- 暂存区和版本库差别
git diff --cached
- 在版本库中回退
会将版本库和工作区都回退到上个版本
暂存区没有东西
实质是移动版本库的HEAD指针
git reset --hard HEAD^
git reset --hard <commit版本号>
- 查看本地版本库和远程版本库差别
git diff master origin/master
- 查看版本日志
查看提交历史
git log
git log --pretty=oneline
git log --graph --pretty=oneline --abbrev-commit
查看命令历史
git reflog
- 分支管理
git branch dev
git checkout dev
git checkout -b dev
git checkout -b dev origin/dev
git branch
git branch --set-upstream-to=origin/dev dev
将dev分支合并到当前分支
git merge dev
合并分支并创建一个commit
git merge --no-ff -m "merge with no-ff" dev
git branch -d dev
- 保存现场
git stash
git stash list
git stash apply
git stash drop
git stash pop
git stash apply stash@{0}
- 查看远程版本库
git remote -v
git remote add origin git@github.com:michaelliao/learngit.git
将本地版本库和远程版本库联系起来
git push -u origin master
git clone git@github.com:michaelliao/gitskills.git
- 推送到远程版本库
git push origin master
git push origin dev
- 打tag
git tag v1.0
git tag v0.9 f52c633
git tag -a v0.1 -m "version 0.1 released" 1094adb
git tag
git show v0.9
删除tag
git tag -d v0.1
git push origin v1.0
git push origin --tags
git push origin :refs/tags/v0.9
- 自定义git
git config --global color.ui true
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"
.gitconfig
.git/config
git rebase 和 git merge 作用基本是相同的,二者的一个重要的区别是:历史提交本版的区别。git rebase可以使得你的分支看起来像是没有经历过合并一样
git checkout mywork
git rebase origin
git rebase --continue
git rebase --abort
git pull --rebase