Git 命令快速浏览
- 创建 Git 可管理的仓库
git init
- 查看当前仓库的状态
git status
- 添加到仓库,实际上是添加到暂存区
git add [-A | --all]
git add filename - 删除到仓库
git rm filename
git rm -r folder - 把暂存区的所有内容提交到当前分支
git commit -m '此次提交的注释'
- 查看当前file与仓库当前分支下file的不同
git diff file
git diff HEAD --file
(与仓库中最新版本的区别)
git diff fe55d6a 112k32 > diff.txt
(查看两个历史版本的不同,写入diff.txt) - 仓库中版本的历史记录
git log
git log --graph
(分支合并图)
git log --pretty=oneline
(每条记录均以一行显示)
git log --graph --pretty=oneline --abbrev-commit
(合并上面两条的效果,并简化标记id号) - 回退
git reset --hard HEAD^
(会退到上一版本,HEAD为当前版本,HEAD^为上版本,HEAD^^为上上版本)
git reset --hard fe55d6a
(回退到指定标记id(fe55d6a)的版本)
git reset HEAD filename
(把暂存区的修改撤销掉(unstage),重新放回工作区) - 命令历史,记录每一条执行的命令
git reflog
- 绑定远程仓库
git remote add origin git:@github.com:FunnyZ/LearnAngular2.git
- 本地库推送到远程库
git push <远程仓库> <本地分支>:<远程仓库分支>
git push -u origin master
(-u: 不但把master分支内容推送到远程仓库master分支,还会把本地的master分支和远程仓库的master分支关联起来,指定origin为默认主机)
git push --all origin
(将本地所有分支都推送到远程仓库origin)
分支参考:
master: 主分支,时刻与远程同步
dev: 开发分支
bug: 用于在本地修复bug
feature: 某功能 - 抓取分支
git pull <远程仓库> <远程分支>:<本地分支>
git pull origin next:master
(抓取origin库的next分支,与本地的master分支合并) - 克隆一个本地库
git clone <远程仓库>
git clone git@git.oschina.net:xxx/xxx.git - 查看远程仓库信息
git remote
git remote -v
- 分支
git branch dev
(创建dev分支)
git checkout dev
(切换到dev分支)
git checkout -b dev
(创建dev分支,并切换到dev分支)
git branch
(查看当前是哪个分支)
git branch -a
(查看所有分支,包括远程)
git branch -r
(查看远程仓库的分支)
git branch -d dev
(删除dev分支)
git branch -D dev
(强制删除dev分支)
git merge dev
(把dev分支合并到当前分支上)
git merge --no-ff -m 'merge with no-ff' dev
(标记禁用Fast forward,合并后的历史有分支,能看出曾做过分支合并)
- 存储当前工作现场
git stash
- 查看已存储的现场
git stash list
- 恢复现场并删除存储stash内容
git stash pop
- 恢复现场但stash内容仍存在
git stash apply[stash@{}]
- 删除stash内容
git stash drop
- 配置别名
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.last 'log -l' - 设置用户名
git config --global user.name 'xxxx'
- 设置电子邮件
git config --global user.email 'xxxx@xx.com'
- 查看配置
git config --list