Git强大的版本控制工具

集中式(svn)

svn因为每次存的都是差异 需要的硬盘空间会相对的小一点  可是回滚的速度会很慢
优点: 
    代码存放在单一的服务器上 便于项目的管理
缺点: 
    服务器宕机: 员工写的代码得不到保障
    服务器炸了: 整个项目的历史记录都会丢失

分布式(git)

git每次存的都是项目的完整快照 需要的硬盘空间会相对大一点
    (Git团队对代码做了极致的压缩 最终需要的实际空间比svn多不了太多 可是Git的回滚速度极快)
优点:
    完全的分布式
缺点:    
    学习起来比SVN陡峭

    **见百度网盘的资料,有pdf和笔记**

git底层命令

  • clear 清除屏幕
  • echo ‘test content’>test.txt 新建一个test.txt文件,并写入内容test content
  • find 目录名 将对应目录下的所有文件以及文件目录平铺在控制台
  • find 目录名 -type f 将对应目录下的文件平铺在控制台
  • rm 文件名 删除文件
  • mv 源文件 重命名文件 重命名
  • cat 文件的url 查找对应文件的内容
  • vim 文件的url
    i 编辑模式
    q! 强制退出(不保存)
    wq 保存退出
    set nu 设置行号

状态

两种:已跟踪 或 未跟踪
对于已跟踪的文件有3种状态:已提交,已修改,已暂存(Changes to be committed)
git add就是把目标文件快照放入暂存区域

git ls-files -s 查看暂存区
已经暂存是绿的
已经修改未暂存是红的

git reflog 查看完整的操作
git lol 是查看你想看到的日志

提交对象对应一个树对象

Git强大的版本控制工具.png

GitHub团队协作

上传到GitHub操作

  • 在GitHub上新建一个仓库
  • git init 初始化
  • git add ./ 跟踪
  • git commit -m “msg” 提交msg进行描述
  • git remote add anjia https链接
  • git push anjia master 将anjia以分支master上传到远程仓库

成员使用仓库

  • git clone 下载链接
    - 只有在克隆的时候 本地分支 和 远程跟踪分支(别名/master) 是有同步关系的
    - 同步关系下,本地分支 跟 远程跟踪分支的内容互相同步,互相影响
  • 在本地进行编码修改
  • git push origin master 推到远程仓库,默认名字为origin 分支为master

注意:在成员提交之前,项目经理要进行邀请,否则不能提交成功
邀请:在项目的settings里选择collaborators里搜索成员名字,选择添加。等待成员同意

  • 项目经理使用git fetch anjia 来更新,可以看到成员的修改
  • 项目经理get merge 远程跟踪分支合并