git简介
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
git和svn区别
- GIT是分布式版本控制,SVN是集中式版本控制。
- GIT把内容按元数据方式存储,SVN是按文件。
- GIT没有一个全局版本号,而SVN有。
- GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。
- GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。
- GIT可离线完成大部分操作。
git安装
windows从官网下载安装https://git-scm.com/
配置git
安装成功后打开git bash
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
git常用命令
- 在项目根目录初始化git仓库
$ git init
- 添加文件
$ git add <file>
- 提交
$ git commit -m <message>
- 查看当前工作区状态
$ git status
- 查看文件修改内容
$ git diff <file>
- 查看提交历史记录
$ git log
$ git log --pretty=oneline
- 版本回退
//回退上一个版本HEAD^
//回退上上个版本HEAD^^
//回退上100个版本HEAD~100
$ git reset --hard HEAD^
$ git reset --hard <版本ID>
- 查看操作历史记录
$ git reflog
- 撤销修改文件
//让文件从版本库里的版本替换工作区的版本
$ git checkout -- <file>
- 删除文件
$ git rm <file>
- 关联远程仓库
$ git remote add origin <address>
- 提交到远程仓库
//第一次提交要加-u参数
$ git push -u origin master
$ git push origin master
- 克隆仓库到本地
$ git clone <address>
-查看分支
$ git branch
- 创建分支
$ git branch <分支名>
- 切换分支
$ git checkout <分支名>
- 创建+切换分支简写
$ git checkout -b <分支名>
- 合并分支
//合并指定分支到当前分支
//如果要合并分支到master上,需要先切换到master分支上再合并
$ git merge <分支名>
//禁用Fast forward模式,合并后的历史有分支
$ git merge --no-ff -m "merge with no-ff" <分支名>
- 删除分支
$ git branch -d <分支名>
//强制删除没有合并的分支
$ git branch -D <分支名>
- 取回远程分支的更新,再与本地的指定分支合并
$ git pull
- 建立本地分支和远程分支关联
git branch --set-upstream <分支名> origin/<分支名>