为什么需要用到版本控制工具

  • 开发模式
    • 集成开发
    • 前后端分离
  1. 多人协作提升工作效率
  2. 减少代码冗余
  3. 减少沟通成本
  4. 代码回滚
  5. 代码备份
  6. 历史代码对比

版本控制工具分类与区别

集中式版本控制

  • svn
  • tfs

分布式

  • git

集中式:客户端与服务端需要同时在线,才可以完成增删改查 (操作型)
分布式:客户端可以先自行保存快照,在合适的环境下,提交到服务器 (命令行)

git svn
1. Git 是一个分布式的版本控制工具 1. SVN 是集中版本控制工具
2.它属于第 3 代版本控制工具 2.它属于第 2 代版本控制工具
3.客户端可以在其本地系统上克隆整个存储库 3.版本历史记录存储在服务器端存储库中
4.即使离线也可以提交 4.只允许在线提交
5.Push/pull 操作更快 5.Push/pull 操作较慢
6.工程可以用 commit 自动共享 6.没有任何东西自动共享

|

工作流

常用命令

  • git init:仓库的初始化;
  • git status:查看当前仓库的状态;
  • git diff:查看仓库与上次修改的内容;
  • git add:将文件添加至暂存区;
  • git commit:提交代码;
  • git clone:克隆代码;
  • git branch:查看当前分支;
  • git checkout:切换当前分支;
  • git log
  • git pull
    • git fetch
    • git merge
  • git push
  • git config

提交时发生冲突,你能解释冲突是如何产生的吗?你是如何解决的?

开发过程中,我们都有自己的特性分支,所以冲突发生的并不多,但也碰到过。诸如公共类的公共方法,我和别人同时修改同一个文件,他提交后我再提交就会报冲突的错误。 发生冲突,在 IDE 里面一般都是对比本地文件和远程分支的文件,然后把远程分支上文件的内容手工修改到本地文件,然后再提交冲突的文件使其保证与远程分支的文件一致,这样才会消除冲突,然后再提交自己修改的部分。特别要注意下,修改本地冲突文件使其与远程仓库的文件保持一致后,需要提交后才能消除冲突,否则无法继续提交。必要时可与同事交流,消除冲突。 发生冲突,也可以使用命令。

  • 通过 git stash 命令,把工作区的修改提交到栈区,目的是保存工作区的修改;
  • 通过 git pull 命令,拉取远程分支上的代码并合并到本地分支,目的是消除冲突;
  • 通过 git stash pop 命令,把保存在栈区的修改部分合并到最新的工作空间中;

git 本地仓库和远程仓库的创建和链接

  1. 第一种使用方法
    1. 先创建一个远程仓库(也就是在 github 上创建一个远程仓库)
    2. 然后再通过 git clone 远程仓库的地址 克隆到本地
    3. 将我们写好的项目放到 clone 下来的文件夹里
    4. 通过 git add . ( . 点是选中所有的文件,也可以改成某个文件名只提交某一个文件)这是添加到暂时存储
    5. 通过 git commit -m “(这里边是描述信息)” 推送到本地仓库
    6. 通过 git push 将我们的项目推送到远程仓库
  2. 第二种使用方法
    1. 先创建一个远程仓库(也就是在 github 上创建一个远程仓库)
    2. 然后在自己电脑上创建一个文件
    3. 在自己创建的文件里点右键 选中 git bash here 进入命令行
    4. 在命令行里输入 git init 创建一个本地仓库
    5. 再输入 git add . 添加到暂时存储
    6. 再输入 git commit -m “(这里是描述信息)”推送到本地仓库
    7. 再输入 git remote add 自定义名 远程仓库地址 绑定本地仓库和远程仓库
    8. 再输入 git push 自定义名 master 添加到远程仓库