参考资料:狂神说Git、配置参考、操作参考。感觉自己写一些东西以后复习亲切一些。
(一) 版本控制
版本控制、管理多个人协同开发
常见的版本控制工具:Git、SVN等。Git是当下最流行的
(二) Git和SVN的区别
版本控制的分类:
- 本地版本控制:version 1、2、3 …
- 集中版本控制:所有版本都存在服务器上每个协同开发者都可以同步更新,多人会冲突,服务器崩了就寄了,需要随时备份,代表SVN,学了Git一定会SVN
- 分布式版本控制:每个人都拥有全部的代码,有人跑路就寄了
常见面试题:
(三) Git的历史
是为了辅助Linux内核开发的
(四) 安装Git及环境配置
Git Bash:Linux风格,推荐
Git CMD:Windows风格
Git GUI:图形化界面,不推荐
(五) 常用Linux命令
(六) Git必要配置
# 清屏
clear
# 查看git配置
git config -l
# 只看系统配的
git config --system -l
# 只看自己配的,重点包括user.name和user.email
git config --global -l
所有的配置文件都保存在本地,本质都是文件。
系统级的配置在Git文件中:
用户配置设置:
git config --global user.name "YourName"
git config --global user.email "12138@qq.com"
环境变量要不要配置?取决于是否任何时候都要用,默认已经配置了。
(七) Git 核心工作原理
Gti本地三个工作区:工作目录(Working Directory)、暂存区(Stage / Index)、资源库(Repository / Git Directory),还有一个远程git仓库(Remote Direcory)
重点是工作区和远程仓库。
- Workspace:工作区,平时存放项目代码的地方
- Index /Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
- Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换,Github / Gitee
注意:.git是隐藏文件夹
git的工作流程: - 在工作目录中添加、修改文件
- 将需要进行版本管理的文件放入暂存区域:
- 将暂存区域的文件提交到git仓库
因此,git管理的文件有三种状态:已修改(modified)、已暂存(staged)、已提交(committed)
(八) Git项目创建和克隆
重点学习:add -> commit -> push
创建git项目:本地仓库搭建
git init
创建git项目:克隆远程仓库
git clone https://github.com/facebookresearch/barlowtwins/tree/main
(九) Git的基本操作命令
- 查看文件状态
git status
git status readme.md
- 添加所有文件到暂存区
git add .
- 提交暂存区文件到本地仓库,这里一定有-m表示message
git commit -m "first commit"
4. 忽略文件
不是所有文件都要提交,比如配置文件、临时文件、本地文件、日志,在主目录下建立.gitignore文件。大部分都是开发的东东,不咋听得懂。
(十) 码云(Github)注册和使用
(十一) 配置SSH公钥及创建远程仓库
国外github,国内gitee,自建gitee。步骤:
- 注册
- 设置本机绑定SSH公钥免密登录
打开git bash生成公钥
ssh-keygen -t rsa
然后回车回车
4. 将公钥信息public key添加到码云账户中(Github公钥设置在setting里的SSH and GPG keys)
5. 使用码云创建一个自己的仓库
(十二) IDEA中集成Git操作
我平时用Pycharm多,下面Pycharm为例。Pycharm的project栏通过文件名颜色识别文件状态。
- 红色, 表示在工作区
- 绿色, 表示在暂存区
- 蓝色, 表示文件有修改,位于暂存区
- 文件名无颜色,表示位于本地仓库区或已经提交到远程仓库区
- 在github新建一个仓库,clone下来,把.git文件复制到自己的project目录下
- 添加到工作区:新建一个文件会问是否add,或者右键git add,变红
- 添加到暂存区:选中文件,点右上角绿色对号commit
弹出这个commit区,这时候要记得在注释里写一些东西才能继续操作
push之后文件颜色变白,刷新github就能看见文件了。此时再编辑颜色变蓝。感觉也不难多操作几次就好了。
(十三) Git 中的分支
master主分支、dev开发分支、各种version。类似平行宇宙。
# 新建一个分支,但依然停留在当前分支
git branch [branch-name]
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 合并指定分支到当前分支
$ git merge [branch]
# 删除分支
$ git branch -d [branch-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
如果多个分支并行执行,就会导致代码不冲突,同时存在多个版本。如果冲突则要选择保留谁的代码。