Git是目前世界上最先进的分布式版本控制系统(没有之一)。具体的命令细节强烈推荐廖雪峰的 git 教程系列。这里的命令小结大多也是来自该教程,再次记录可以防止命令遗忘,以备快速检索使用。
创建版本库
- 初始化Git仓库:
git init
- 添加到stage暂存区:
git add <file> #添加file文件到暂存区
git add . #添加所有修改文件到暂存区
- 把暂存区中的文件提交到仓库:
git commit -m <message>
版本库状态
- 查看工作区状态:
git status
- 查看工作区文件的修改:
git diff
- 查看版本库commit记录:
git log
git log --pretty=oneline
git log --graph
- 查看HEAD指针的所有改变:
git reflog
版本回退
- 回退到某个commit记录:
git reset <commit_id> #工作区保留改变
git reset --hard <commit_id> #工作区也回退
git reset --hard HEAD^ #回退到上一版本
git reset --hard HEAD^^ #回退到上上一版本
git reset --hard HEAD~100 #回退到前100个版本
- 丢弃工作区的修改:
git checkout -- <file>
- 丢弃暂存区修改到工作区:
git reset HEAD <file>
远程仓库
- 查看远程仓库:
git remote -v
- clone远程仓库:
git clone https://github/beenking/xxx.git
git clone -b <branch-name> https://github/beenking/xxx.git # clone 指定分支
- 获取远程新提交:
git pull
- 推送本地分支到远程:
git push <remote-host> <branch>:<remote-branch>
#本地master分支推送到origin主机的master分支,如果远程分支不存在,则会创建
git push origin master
git push origin :master #删除远程master分支
#等同于
git push origin --delete master
分支管理
- 查看分支:
git branch #查看本地分支
git branch -r #查看远程分支
git branch -a #查看本地与远程分支
- 新建与切换分支:
git branch <branch-name> #新建分支
git checkout <branch-name> #切换分支
git checkout -b <branch-name> #新建并切换分支
- 删除分支:
git branch -d <branch-name> #删除本地分支
git branch -D <branch-name> #删除本地没有合并过的分支
git push origin :<remote-branch> #删除远程分支remote-branch
#等同于
git push origin --delete <remote-branch>
- 合并分支:
git merge <branch-name> #合并分支branch-name到当前分支