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@xx.com” 之后无需输入密码。【生成——>验证】
加深理解——看图说话
三个区——结构
团队内部协作方式(invite)
跨团队协作流程
为什么要fork?归属权
分支的本质,git的经典之处
开发新功能,hot_fix,并行开发,升级版本
分支:基于master的复制,合并可能有冲突,冲突解决
git指令
来自阮一峰大神
总结
之前在github上建的博客瞎写,但是感觉有点麻烦也没人看到,不容易坚持。工作意识到了总结和学习的重要性,会把需要深入的东西都放在博客上面,因为有纸质笔记,所以不会在上面讲解,纯个人复习有时查阅用到,而且不会特别深究【究到我需要的程度即可】。
总的来说git协同就是上面两个流程,了解常用指令就够了
有一篇博文写的很好https://www.ruanyifeng.com/blog/2014/06/git_remote.html
阮一峰大神写的。