git及github学习笔记

大纲

  • Git&Github学习笔记
    • 提出问题
      • git和github一些概念
      • git命令行操作
      • git原理
    • 加深理解——看图说话
    • 总结

Git&Github学习笔记

学习内容:尚硅谷github教程(BV1pW411A7a5)
学习原因:刚开始工作,想到以后要和git和github天天打交道,还是熟悉一点,形成一套理论体系
学习方法:听视频——>罗列问题——>自问自答定期复盘+视频重点截图

提出问题

git和github一些概念

  • 版本控制工具应该满足?(版本管理,协同修改,数据备份,权限控制,历史记录,分支管理)
  • 集中式版本控制工具(以SVN为例)与分布式版本控制工具(以Git为例)
  • git优势(本地,完整性由谁保证?分支的实质?与linux用一个爹=熟悉linux指令)
  • git在本地的结构(work tmp repo)
  • git和代码托管中心
    • 局域网
    • 外网
  • 为什么需要代码托管中心?
  • 本地库和远程库的工作流程
    • 团队内部协作
    • 跨团队协作

git命令行操作

  • git init
  • git config(系统级别与repo级别)git config user.name --global
  • git config保存在哪里?~ .config & .git/config
  • git status
  • git add .
  • git commit -m’ ’
  • git rm --cached filename
  • 暂存区的作用(进退有据)
  • HEAD
  • git log
  • git log --oneline(只有过去)
  • git log --pretty=oneline(只有过去)
  • git reflog(过去与未来)
  • 历史版本的样子
  • 指针前进后退的三个方法
    • 基于索引 git reflog
    • ^ 重复 后退
    • ~ +数字 后退
  • git reset --hard [索引值]
  • git reset的三个参数 soft mixed hard 三个区的改变情况
  • git diff
    • 加文件名与不加文件名
    • 默认:工作区与暂存区比较
    • HEAD/其他指针位置 工作区与某个版本的差异
    • git diff --cached 暂存区与最新本地版本库(最近一次commit)
    • git diff --cached [版本值] 暂存区与某个版本的差异
    • 比较两个版本的差异 git diff 版本 版本
  • 什么是分支?(并行开发)
  • git branch 分支名字
  • git branch -v
  • git checkout 分支名
  • git merge 某分支
  • 解决冲突步骤:改,git add,git commit
  • 本地库给远程库地址别名 git remote add 别名 远程库地址(以后不用每次输入长串地址,加别名即可)
  • git remote -v
  • git push 库 分支【本地repo branch——>远程repo branch】
  • git clone=git init+下载到本地+origin别名
  • git pull 库 分支 pull=fetch+merge
  • git fetch
  • fork

git原理

  • 数据完整性——hash git:SHA-1
  • 版本保存——快照流+指向快照流索引
  • 对于重复数据——指针指向之前parent
  • ssh连接与https连接(连接的是服务器)-——ssh-keygen -t rsa -C “[email protected]” 之后无需输入密码。【生成——>验证】

加深理解——看图说话

三个区——结构
git及github学习笔记_第1张图片
团队内部协作方式(invite)
git及github学习笔记_第2张图片
跨团队协作流程
为什么要fork?归属权
git及github学习笔记_第3张图片
分支的本质,git的经典之处
开发新功能,hot_fix,并行开发,升级版本
分支:基于master的复制,合并可能有冲突,冲突解决
git及github学习笔记_第4张图片
git指令
来自阮一峰大神
git及github学习笔记_第5张图片

总结

之前在github上建的博客瞎写,但是感觉有点麻烦也没人看到,不容易坚持。工作意识到了总结和学习的重要性,会把需要深入的东西都放在博客上面,因为有纸质笔记,所以不会在上面讲解,纯个人复习有时查阅用到,而且不会特别深究【究到我需要的程度即可】。
总的来说git协同就是上面两个流程,了解常用指令就够了
有一篇博文写的很好https://www.ruanyifeng.com/blog/2014/06/git_remote.html
阮一峰大神写的。

你可能感兴趣的:(git)