协同开发(版本控制器)

一、SVN

  1. SVN是集中式服务器,整个公司用的是同一台服务器
  2. 服务器端创建仓库
  3. SVN客户端操作
  1. 关联服务器端:检出关联
  2. 提交:SVN commit
  3. 更新:SVN update
  4. 冲突:服务器只能基于一个版本进行升级(手动解决)
  1. 先更新,后提交

二、Git

Git是分布式服务器,集中式 vs 分布式

自报家门:你的名字和Email地址

​git config --global user.name "Your Name"​

​git config --global user.email "email@example.com"​

1.创建仓库(创建版本库):

​git init​

2.添加到版本库:

​git add filename​

​git commit -m '注释'​

3.版本回退管理:

​git status​​ 查看当前版本库状态

​git diff​​ 查看具体修改内容

​git log​​ 查看历史提交版本信息

​git log --pretty=oneline​​ 查看历史版本信息简约化

​git reset --hard HEAD^​​ 历史版本回退,一个​​^​​回退一个版本

​git reset --hard​​ 版本号 历史版本回退

​git reflog​​ 记录你的每一次命令

4.工作区和暂存区、版本库

工作区:工作目录

暂存区:​​git add​

版本库:​​git commit​

5.管理修改(操作)

Git跟踪并管理的是修改,而非文件。记录、提交操作

6.撤销修改

  1. 自修改后还没有被放到暂存区: ​​git checkout -- fileName​
  2. 已经添加到暂存区后: ​​git reset HEAD fileName​​ ​​git checkout -- fileName​
  3. 已经条件到版本库里 参考“ 3.版本回退 ”

7.删除文件

  1. 自然删除,未被添加到版本库:​​rm fileName​​(右键删除)
  2. 已经添加到版本库:
  1. 彻底删除:​​rm fileName​​(右键删除) ​​git rm fileName ​​ ​​git commit -m 'remove'​
  2. 恢复原样:​​rm fileName​​(右键删除) ​​git checkout -- fileName​

8.分支管理

  1. 创建并切换分支: ​​git checkout -b ‘分支名称’​
  2. 切换分支: ​​git checkout ‘分支名称’​
  3. 查看分支: ​​git branch​
  4. 合并分支: ​​git merge ‘分支名称’​​ 在主分支下合并
  5. 删除分支: ​​git branch -d ‘分支名称’​
  6. 创建分支不切换分支: ​​git branch ‘分支名称’​
  7. 切换分支(新版本): ​​git switch ‘分支名称’​

9.分支解决冲突

合并不同分支提交的内容,最后由​​master​​主分支​​add​​,然后​​commit​​提交

10.关联远程仓库:​​github​

  1. 创建SSH Key:​​ssh-keygen -t rsa -C​​ "youremail@example.com";在cmd中运行
  2. 用github账号创建SSH Key的关联
  3. 创建仓库,上传本地仓库代码
  1. ​git remote add origin​
  2. ​git branch -M main​​(可不用)
  3. ​git push -u origin master(main)​​如果运行②则​​master​​改为​​main​
  4. 修改代码再次上传:​​git push​
  1. 上传所有文件 ​​git add .​

11.github的忽略文件

在​​.gitignore​​文件中的,不会被上传

12.关联远程仓库:​​gitee​​(码云)

  1. 创建远程仓库
  2. 克隆远程仓库:git clone '远端仓库url'
  3. 添加本地仓库
  1. ​git add .​
  2. ​git commit -m '注释'​
  3. ​git push​
  1. 向本地拉取
    git pull

13.远程仓库操作容易产生冲突

  1. 多人同时上传解决:
  1. ​git pull​
  2. 保留多人修改的内容
  3. ​git add ‘filename’​
  4. ​git commit -m '注释'​
  5. ​git push​
  1. 一个人修改上传,我本地也修改代码,但我不把自己修改了的代码更新到仓库。这时拉取git pull,会覆盖自己所写代码解决:
  1. 每次更新前,先把自己的代码提交到本地仓库
  2. ​git add '提交的文件名'​
  3. ​git commit -m '提交注释'​

3.git 与 svn 的区别在哪里?

git 和 svn 最大的区别在于 git 是分布式的,而 svn 是集中式的。因此我们不能再离线的情况下使用 svn。如果服务器
出现问题,我们就没有办法使用 svn 来提交我们的代码。

svn 中的分支是整个版本库的复制的一份完整目录,而 git 的分支是指针指向某次提交,因此 git 的分支创建更加开销更小
并且分支上的变化不会影响到其他人。svn 的分支变化会影响到所有的人。

svn 的指令相对于 git 来说要简单一些,比 git 更容易上手。