内容参考自 廖雪峰
集中式和分布式
集中式版本控制系统:版本库存放在中央服务器,干活的时候需要从中央服务器获得最新版本到自己电脑,干完了再推送回去。
- 缺点:中央服务器出问题,所有人都不能干活了。而且必须联网工作,局域网带宽够大速度够快,而互联网若网速慢的话提交就很慢
分布式版本控制系统:没有中央服务器,每个人的电脑上都是一个完整的版本库
1、git 初始化设置和入门
在 linux 或 windows 下安装好 git 后,便可进行初始化操作。
1、设置用户名和邮箱
如果在 windows 下,那么打开 git bash
git config --global user.name '你在GitHub注册的用户名'
git config --global user.email '你在GitHub注册的邮箱'
2、生成 ssh 公钥
ssh-keygen -t rsa -C '你在GitHub注册的邮箱'
3、github 配置 ssh 公钥
用户主目录下,到 .ssh 所在目录,找到 id_rsa.pub 文件
- 用 cat 命令查看并复制里面的内容
上 github 点头像中的 setting,然后点击下面的 new SSH key,title 随意,然后复制的公钥粘贴到 key 中
假如你有多台电脑,只要把每台电脑的 key 都添加至 github,就可以在每台电脑上推送文件到 github 了,有了这个 key,别人就不能推导你的账户,而在你 key 列表中的电脑,便可以推到你的账户
4、建仓远程仓库
5、提交的基本流程
git init
git add readme.txt
git commit -m 'git test'
git remote add origin https://github.com/GogoingDzh/Git_test.git
git push -u origin master
2、基本概念
1、工作区
也就是在电脑上能看到的目录
2、版本库 .git
版本库中包含 暂存区stage 和 master 分支,以及指向 master 的一个 HEAD 指针。当我们使用 git init 创建版本库的时候,就会创建唯一的 master 分支。
3、如何把工作区的文件提交到暂存区
例如,创建版本库以后,你修改了 readme 文件,那么使用 git status 查看时,会出现 modified 的字样
此时,使用 git add <文件名>
把修改了的文件添加到暂存区,modified 字样由红变绿,表示文件已添加到暂存区
4、如何将暂存区的所有内容提交到当前分支
在使用 git add
将需要提交的文件放到暂存区以后,使用 git commit -m <message>
一次性提交所有更改,把暂存区的所有内容提交到当前分支。
在提交以后,如果没有再对工作区做修改,那么工作区是干净的。
提交时,需要保证你的修改都被 add 到暂存区了,否则这一次的 commit 就是无效的
5、如何查看工作区和仓库之间的差异
比如 2020年6月19号 20点 我提交了一次修改
第二天早上 6月20号,我作了一些修改,但是我已经记不清19号时作了哪些修改了,那么可以用 git diff <文件名>
来查看之间的差异
- 新增的代码将在前面显示 +,而去掉的代码将显示 -