git简介
git是一个开源的分布式版本控制系统,可以有效、高速的处理很小到非常大的项目版本管理。代码管理工具
类似的版本管理系统,它们最主要的区别是:svn是集中式的,git是分布式的
- svn每个文件夹都有一个文件.svn 需要一台中央服务器。版本记录是集中存放在服务器上的,如果网络不好等意外,会影响工作,没办法恢复。
- 集中式
2. git速度比svn快 只有一个文件夹 .git,
版本记录服务器和自己的电脑上都存在,如果网络不好等意外,不会影响工作,可以通过自己的版本库来恢复
- 分布式
git命令
命令 | 说明 |
---|---|
ssh-keygen | 生成公钥和秘钥 |
git init | 初始化git仓库 |
git add . | 把工作区所有的修改都提交到暂存区 |
git add 指定文件名 | 把工作区指定的文件添加到暂存区 |
git status | 查看工作区和暂存区的状态 |
git commit -m “描述” | 把修改从暂存区提交到本地版本库的当前分支 |
git commit -a -m “提交信息” | 跳过暂存区 已经跟踪过的文件暂存起来一并提交 |
git log | 查看历史记录 |
git reflog | 查看所有的历史记录 |
git log --graph | 打印图谱 |
git diff | 查看工作区的具体修改 |
git diff --cached | 查看暂存区具体的修改 |
git checkout – 文件名 | 撤销工作区的修改 |
git clone 仓库地址 | 克隆仓库 |
git push origin master | 向远程master分支推送代码 |
git pull origin master | 从远程master分支拉取代码 |
git fetch origin master | 从远程master分支拉取代码,但是不和本地的合并 |
git branch <分支名> | 新建分支 |
git branch | 查看本地所有的分支 |
git branch -a | 查看本地和远程所有的分支 |
git branch -r | 查看远程的分支 |
git checkout <分支名> | 切换分支 |
git checkout -b <分支名> | 创建并切换分支 |
git merge <分支名> | 合并代码 |
git branch -d 分支名 | 删除本地分支 |
git push origin -d <分支名> | 删除远程分支 |
git tag v1.0 | 打标签 |
git tag -d v1.0 | 删除标签 |
撤销
1. 撤销工作区的修改
git checkout <文件名>
2. 撤销暂存区的修改
第一步:git reset 文件名 把暂存区的修改撤销回工作区
第二步:git checkout <文件名>
3. 回退版本
git reset --hard HEAD^ HEAD^^ HEAD~3 回退版本
git reset --hard HEAD^ 回退一个版本 ^^ ^^^
git reset --hard <commit_id> 回退到指定版本
git reset --hard commit_id(5aefba5dfdfc6f54b4cbcfcf1be6752429813a0b)