git是目前最先进的版本控制系统,不管你承不承认,它都是。
它的特征是:高大上、分布式、速度快!
好了,不扯太多了,本文也不会介绍git的安装和使用,只会介绍一些常用的命令。需要系统学些的同学可以看git官方文档或者git中文教程。
1.常用命令
- 创建版本库:
git init - 添加文件:
git add <file name>
git stage <file name> - 删除文件:
git rm <file name> - 提交文件:
git commit - 查看状态
git status - 比几年工作区和暂存区的变化:
git diff - 放弃对工作取的修改:
git checkout --<file name> - 查看日志:
git log
git log --prettyoneline (单行显示日志) - 版本回退:
git reset HEAD^ (回退到上一个版本)
git reset HEAD^^(回退到上二个版本)
git reset HEAD~100(回退到上100个版本)
git reset <commit id> (回退到指定版本) - 查看每一次影响版本的命令:
git reflog - 比较工作区和代码仓库的变化:
git diff HEAD --<file name>
2.远程仓库
查看~/.ssh下是否存在id_rsa 和 id_rsa.pub文件,如果不存在,使用如下命令创建:
ssh-keygen -t rsa -C "youremail"
- 克隆远程仓库:
git clone <远程仓库地址> - 关联远程仓库:
git remote add origin <远程仓库地址> - 查看远程仓库:
git remote
3.分支管理
- 创建一个分支:
git branch <branch name> - 切换到一个分支:
git checkout <branch name> - 创建并切换到一个新分支:
git checkout -b <branch name> - 查看分支:
git branch - 合并分支:
git merget <branch name>
git rebase <branch name>
git merge --no-ff <branch name> (不快速向前合并)
两者的区别自行百度 - 删除分支:
git branch -d <branch name> - 强制删除一个分支:
git branch -D <branch name> - 查看分支变化:
git log --graph --pretty=oneline --abbrev-commit - 查看远程分支:
git branch -r - 在某个远程分支上创建本地分支:
git checkout -b <branch name> origin/<branch name> - 关联远程分支:
git branch --set-upstream <branch name> origin/<branch name> - 删除远程分支:
git branch -r -d origin/<branch name> (直接删除)
git push origin :<branch name> (推送空分支) - 拉取分支:
git pull origin <branch name> - 推送分支:
git push origin <branch name> - 保存现场:
git stash - 查看保存的现场列表:
git stash list - 恢复现场:
git stash apply - 恢复指定现场:
git stash apply <现场名> - 删除现场:
git stash drop - 恢复并删除现场:
git stash pop
4.标签管理
- 添加标签:
git tag <tag name>
git tag -a <tag name> -m <tag message> - 查看标签:
git tag - 在某个版本上打标签:
git tag <tag name> <commit id> - 查看标签信息:
git show <tag name> - 删除标签:
git tag -d <tag name> - 推送标签:
git push origin <tag name>
git push origin --tags - 删除远程分支:
git push origin :refs/tags/<tag name>
5.配置
- 忽略文件:
.gitignore - 配置文件:
.git/config (仓库配置文件)
~/.gitconfig (全局配置文件) - 查看配置:
git config --list - 配置别名:
git config --global alias.<new command name> <old command name>