一、基础
1、泛谈
(1)概念:分布式版本控制系统
(2)作用
- 协同开发
- 数据备份
- 版本管理
- 权限控制
2、集中式与分布式
(1)svn 集中式:所有客户端都依赖于 中央服务器,所以必须联网才能用。
(2)git 分布式:每个电脑都有一个本地仓库,不会完全依赖于 中央服务器,因此可以断网使用。
二、工作流程
1、架构
- Workspace:本地工作空间
- Index / Stage:提交前的暂存区
- Repository:本地仓库
- Remote:远程仓库
三、常用命令
1、初步使用
//配置 git
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
//查看配置
git config --list
//将目录初始化为 git可管理的仓库,会生成一个文件夹 .git
git init
// 把文件添加到暂存区
git add <filename>
// 提交到 本地仓库
git commit -m <message>
// 查看是否有文件未提交
git status
// 查看文件修改内容
git diff <filename>
2、版本回退
// 查看提交历史
git log
//查看提交历史版本
git reflog
//恢复版本,三种模式 ,默认是 --mixed
//--soft只是恢复本地库 、--mixed是恢复本地库和暂存区、--hard是本地库和暂存区和工作区都恢复
git reset --hard <commitId>
// 恢复修改,若还没add则内容会被删除,若已 add则就只是撤销add操作
git checkout -- <filename>
//撤销 add操作
git reset HEAD <filename>
// 删除文件
git rm <filename>
3、远程仓库
// 用户主目录找.ssh目录,里面有id_rsa和id_rsa.pub两个文件,id_rsa是私钥,id_rsa.pub是公钥,公钥放一般就是配置到 github等这些仓库上
// 执行命令生成
ssh-keygen -t rsa -C <youremail@example.com>
//查看远程仓库名称,一般都是叫 origin
git remote
//将本地已经 init的目录和远程仓库关联
git remote add origin https://github.com/xxx/xxx.git
// 推送到远程仓库,首次需要带 -u来关联分支,后续则不用
git push -u origin master
// 拉去远程仓库最新代码
git pull
// 若本地原来没有的项目,从远程仓库克隆出来
git clone https://github.com/xxx/xxx.git
// 本地仓库迁出远程仓库中的其他分支
git checkout -b dev origin/dev
// 为某个状态打标签
git tag v1
// 查看所有标签
git tag
//删除标签
git tag -d v1
// 推送标签到远程仓库
git push origin --tags
4、操作分支
// 查看当前分支
git branch
// 切换分支,加了 -b则表示新创建并切换到该分支,没有加则只是切换已有分支
// 切换分支也可以用 git switch -c <branch> -c 表示新创建
git checkout -b <branch>
//删除分支
git checkout -d <branch>
//当前分支 去合并其他
git merge <branch>
//暂存修改(不同于提交前的暂存)
git stash
// 查看暂存
git stash list
//恢复暂存
git stash apply
//删除暂存
git stash drop
5、出现冲突
// 一般先 commit自己代码
git commit -m <message>
//然后 pull代码
git pull
//出现冲突,合并如果改了同个文件,修改好文件
git merge
//再提交
git commit -m <message>
//最后 push
git push