Git&GitHub 学习笔记

版本控制简介
版本控制
- 工程设计领域中使用版本控制管理工程蓝图的设计过程。在 IT 开发过程中也可以使用版本控制思想管理代码的版本迭代。
版本控制工具应该具备的功能
版本控制工具
思想:版本控制 👉 实现:版本控制工具
集中式版本控制工具:CVS、SVN 、VSS……

- 分布式版本控制工具:Git 、Mercurial、Bazaar、Darcs……

Git简介

Git简史

Git 的优势
Git 安装









Git结构

Git 和代码托管中心
本地库和远程库
团队内部协作

跨团队协作

Git命令操作
本地库初始化
1 | git init |

- 注意:
- 执行命令后会在项目地址中创建.git 目录
- .git 目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。
设置签名
形式
命令
项目级别/仓库级别:仅在当前本地库范围内有效
1 | git config user.name tom_pro |
- 信息保存位置:./.git/config 文件

系统用户级别:登录当前操作系统的用户范围
1 | git config --global user.name tom_glb |
- 信息保存位置:~/.gitconfig 文件

基本操作
状态查看
1 | git status |
添加
1 | git add [file name] |
提交
1 | git commit -m "commit message" [file name] |
查看历史记录
1 | git reflog |

1 | git log |

1 | git log --pretty=oneline |

1 | git log --oneline |

版本前进后退
本质就是HEAD指针的移动
1 | git reset --hard [局部索引值] |
1 | git reset --hard HEAD^ |
1 | git reset --hard HEAD~n |
reset命令的三个参数对比
删除文件并找回
1 | git reset --hard [指针位置] |
比较文件差异
1 | git diff [文件名] |
1 | git diff [本地库中历史版本] [文件名] |
分支管理

分支操作
创建分支
1 | git branch [分支名] |
查看分支
1 | git branch -v |
切换分支
1 | git checkout [分支名] |
合并分支
- 第一步:切换到接受修改的分支(被合并,增加新内容)上
1
git checkout [被合并分支名]
- 第二步:执行 merge 命令
1
git merge [有新内容分支名]
删除分支
1 | git branch -d [分支名] |
分支合并冲突
冲突的表现

冲突的解决
- 第一步:编辑文件,删除特殊符号
- 第二步:把文件修改到满意的程度,保存退出
- 第三步:
1
git add [文件名]
- 第四步:注意:此时commit一定不能带具体文件
1
git commit -m "日志信息"
git基本原理
哈希

Git 保存版本的机制
集中式版本控制工具的文件管理机制
- 以文件变更列表的方式存储信息。这类系统将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。

Git 的文件管理机制
- Git 把数据看作是小型文件系统的一组快照。每次提交更新时 Git 都会对当前的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。所以 Git 的工作方式可以称之为快照流。

Git 文件管理机制细节
Git 的“提交对象”

提交对象及其父对象形成的链条

Git 分支管理机制
分支的创建

分支的切换




GitHub
创建远程仓库


创建远程仓库地址别名
1 | git remote add [别名] [远程地址] |
1 | git remote -v |

推送
1 | git push [别名] [分支名] |
克隆
1 | git clone [远程地址] |
团队成员邀请

拉取
1 | git pull [远程库地址别名] [远程分支名] |
解决冲突
跨团队协作
SSH 登录
若首次使用先设置Git的user name和email
1
2git config --global user.name [用户名]
git config --global user.email [邮箱]生成密钥
注意:这里-C这个参数是大写的C1
ssh-keygen -t rsa -C [邮箱]
查看id_rsa.pub 文件内容
- 默认保存在用户家目录 .ssh 目录下
1
cat ~/.ssh/id_rsa.pub
- 默认保存在用户家目录 .ssh 目录下
添加 SSH Key
测试
1
ssh -T git@github.com
SSH 推送
回到 Git bash 创建远程地址别名1
git remote add origin_ssh [SSH远程地址]
推送文件进行测试
1
git push origin_ssh [分支名]
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 MyBlog!

















