集中式和分布式版本控制系统的区别
分布式版本控制系统:每个开发者都有整个代码库的所有版本,在离线状态下开发者可以进行版本管理开发, 等网络恢复再push到仓库中。
集中式版本控制系统:每个开发者只有应用代码库的一个版本,在离线状态下开发者无法进行版本管理开发。

git init:初始化仓库git status : 查看状态:红色表示在工作区,绿色表示在暂存区,其他在版本区git add 文件名 :工作区添加到暂存区,”.”号表所有git commit -m '注释' : 暂存区到版本区git clone URL : 克隆仓库git remote add 别名 URL: 本地仓库关联远程仓库,别名一般用origingit remote remove 别名: 本地仓库移除关联
git checkout 分支 : 切换分支git checkout -b 分支 : 创建并切换git branch 分支 : 创建分支但不切换git branch: 查看分支列表git checkout -d 分支 : 删除分支git push origin 分支 : 分支推送远程git pull origin 分支 : 远程拉取到本地git fetch origin master:tmp: 新建一个tmp分支,将远程仓库的master分支上代码版本复制到tmp分支上,不会自动合并git merge 分支 : 指定分支合并到当前分支
版本回退
git log: 提交日志git reflog: 每次提交的IDgit reset --hard HEAD^: 版本回退到一个版本,”^“回退一个版本,”^^”回退两个版本git reset --hard ID号:回退到指定版本删除文件
git rm 文件名: 删除指定文件git rm -r 文件名: 删除指定文件夹git rm --cached 文件: 从暂存区删除比较差异
git diff : 比较暂存区与工作区git diff --cached : 比较版本区与暂存区git diff master : 比较版本区与工作区git diff branch1 branch2:显示出两个分支之间所有有差异的文件的详细差异git diff branch1 branch2 --stat:显示出两个分支之间所有有差异的文件列表git diff branch1 branch2 xxx:显示指定文件的详细差异
补充基础Linux命令
mkdir :创建文件夹vi : 创建文件并进入i :编辑模式ESC+:+wq : 保存并退出ESC+:+q! : 不保存并退出cd : 进入文件夹ls : 当前文件夹文件列表pwd : 当前目录cat 文件 : 显示文件内容clear : 清屏
git flow
- 日常开发:feature => dev => test => master
- 紧急修复bug:master => hotfix => test => master