Git学习笔记

第1章 Git安装

Git官网:https://git-scm.com/

1.1 安装Git

打开安装程序后,一直点击下一步,直到以下位置:

此处代表使用VIM作为Git默认的编辑器。继续下一步,直到:

这里选择第一项,即仅仅在Bash中使用Git。如果有Linux的学习经历,使用Bash是最好的选择。

之后一直点击下一步,直到结束。

1. 2 设置Git账户

|------------------------------------|-------------------|
| 命令 | 含义 |
| git config --list | 查看所有配置 |
| git config --list --show-origin | 查看所有配置以及所在文件位置 |
| git config --global user.name xxx | 设置git用户名 |
| git config --global user.email xxx | 设置git邮箱 |
| git config core.autocrlf false | 取消换行符转换的warning提醒 |

如果不设置用户身份信息,则无法向git仓库总提交修改操作:

1.3 初始化本地仓库

首先,创建一个要被Git管理的普通目录。

第二步,进入目录后,打开git bash终端,在命令行中输入 git init命令,可以将次目录由普通目录转换为git可以管理的目录。

第2章 Git使用

2.1 Git的三区

2.2 Git常规操作命令汇总

|--------------------------------|---------------------------------------|
| 命令 | 作用 |
| git status | 查看本地库的状态 |
| git add file | 把工作区的修改添加到暂存区 |
| git add . | 添加当前目录中的所有修改到暂存区 |
| git rm --cached file | 将一个未tracking文件从暂存区撤销修改 |
| git restore --staged file | 将一个tracking文件从暂存区撤销修改 |
| git restore file|. | 将工作区的修改撤销 |
| git checkout -- file | 从本地库检出最新文件覆盖工作区的文件(文件还没有提交到暂存区, 否则无效) |
| git commit -a -m "说明" file | 用于将tracked file添加到本地库 |
| git commit --m "说明" file | 将暂存区的修改提交到本地库 |

总之,在一个Git仓库中,一定要保证将工作区所有的修改都提交到本地库,达到working tree clean的效果:

2.3 Git版本切换

|----------------------------------------|----------------------|
| 命令 | 作用 |
| git log | 以完整格式查看本地库状态(查看提交历史) |
| git log --pretty=oneline | 以单行模式查看本地库状态 |
| git reset --hard HEAD^ | 回退一个版本 |
| git reset --hard HEAD~n | 回退N个版本 |
| git reflog | 查看所有操作的历史记录 |
| git reset --hard 具体版本号,例如:1f9a527等 | 回到(回退和前进都行)指定版本号的版本 |

在git中任何已经提交的修改都是可以恢复的,任何未提交的修改丢失后可能就找不到了。

2.4 文件比较

|----------------------------|-----------|
| 命令 | 作用 |
| git diff 文件 | 工作区和暂存区比较 |
| git diff HEAD <file> | 工作区和本地库比较 |
| git diff --cached <file> | 暂存区和本地库比较 |

2.5 忽略文件

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件的模式。

示例:

忽略所有的 .a 文件

*.a

排除忽略lib.a文件

!lib.a

忽略整个目录

build/

如果遇到中文无法在git bash中显示的场景,可以尝试如下设置:

git config --global core.quotepath false

2.6 分支操作

2.6.1 分支介绍

不使用分支,就是人与人之间协作;

使用分支,就是小组与小组之间的协作;

从主干中拉取分支,开发完成,将工作,合并到主干。

2.6.2 常用命令

|--------------------------------------------|------------------------------------------------------------------------------|
| 命令 | 描述 |
| git branch 分支名 | 创建分支 |
| git branch -v | 查看分支,可以使用-v参数查看详细信息 |
| git checkout 分支名 | 切换分支 |
| git merge 分支名 | 合并分支; 将merge命令中指定的分支合并到当前分支上 例如:如果想将dev分支合并到master分支,那么必须在master分支上执行merge命令 |
| git branch --d 分支名 | 删除分支 |
| git checkout --b 分支名 | 新建并切换到新分支 |
| git log --oneline --decorate --graph --all | 输出你的提交历史、各个分支的指向以及项目的分支分叉情况 |

2.6.3 处理分支合并冲突

编辑冲突的文件,把">>>>>>>>>"、"<<<<<<"和"========"等这样的行删除,编辑至满意的状态,提交。

提交的时候注意:git commit命令不要带文件名。

第3章 IDEA中使用Git

3.1 集成Git

配置IDEA使用本地安装的Git命令:

配置本地git命令的路径后,可以尝试点击Test,如果可以正确打印,则证明IDEA可以使用本地的Git命令。

3.2 初始化仓库

点击VCS菜单,点击:

之后选择指定的目录后即可初始化为git仓库。

3.3 添加修改到暂存区

git仓库中没有添加到暂存区的文件会显示为红色

点击VCS或者选中文件后点击右键,选择Git菜单,之后选择add可以添加到暂存区

3.4 撤销本地库和暂存区的修改

右键选择Git菜单,选择Rollback即可撤销暂存区的修改

3.5 提交到本地库

右键选择Git菜单,选择Commit File可以提交修改到本地库

3.6 文件比较

在IDEA上做了任何修改后,可以在左下角的Version Control面板中看到文件的变化对比

或者选中文件后,选择git,可以在以下菜单和历史版本进行比较:

3.7 版本切换

在version control面板的Log选项卡中可以查看所有的提交信息:

选择要切换的分支,右键选择checkout即可将HEAD切换到指定的版本:

如果希望切换回到Master,则可以选择最顶的版本,右键选择checkout之后选择master即可

3.8 分支操作

选择Git菜单,Branches

选择New Branche即可以新建分支

选择不同的分支,checkout即可以切换分支:

切换到Master分支后,选择merge into current就可以将指定的分支合并到master分支

3.9 处理分支冲突

当遇到冲突是,可以选择接收一方的修改或者是合并冲突:

在合并冲突的界面,点击图下按钮可以快速编辑冲突:

只有提交即可。

3.10 忽略文件

选中要忽略的文件,之后选择Git菜单,如下:

第 4 章 远程协作

4.1 Git协作

如果希望和别人一起开发一个Git项目,就需要将自己编辑的Git仓库拷贝给别人,如此交流多有不便,因此我们可以尝试将本地的仓库托管到一个远程仓库(类似网盘)中,然后分享(类似网盘分享链接)给别人,以达到协同开发的目的。

目前全球最大最主流的Git项目托管网站为GitHub(微软旗下),国内最大的Git项目托管网站为Gitee(码云)平台。由于国内用户通常无法正常访问Github,因此这里以Gitee为例讲解。

4.2 注册Gitee

访问: Gitee - 基于 Git 的代码托管和研发协作平台

点击右上角的注册按钮,进行注册:

注册成功后,点击个人,选择设置:

在设置中添加邮箱地址:

在IDEA中只能使用邮箱作为用户名登录gitee,因此必须进行设置。

4.3 配置本机和远程仓库的SSH连通

4.3.1 生成本机密钥

在bash中输入 ssh-keygen

密钥保存在用户家目录的 .ssh目录中。其中id_rsa是私钥,id_rsa.pub是公钥。

4.3.2 拷贝公钥到远程仓库

登录gitee,选择设置

选择ssh公钥,之后粘贴

4.3.3 测试连通

ssh -T ++++ssh@gitee.com++++

4.4 创建远程仓库

创建成功后,请复制仓库SSH的url地址。

4.5 本地库和远超库交互操作

|----------------------------|---------------------------------|
| 命令 | 作用 |
| git remote add 变量名 远程仓库url | 为远超仓库的url指定一个变量名,之后可以使用变量名代替url |
| git push -u 变量名 "本地分支名" | 将本地的指定分支推送到远程仓库 |
| git remote -v | 查看远程仓库列表 |
| git pull 变量名 远程仓库分支名 | 拉取远程仓库指定分支到本地 |
| git clone 变量名 | 下载整个远程仓库到本地 |

4.6 处理push冲突

当本地分支的版本落后于远程仓库的版本时,是无法顺利push的,会报错如下:

换句话说,本地顺利push的前提是,本地仓库的版本要比远超仓库新。那么可以先拉取远程仓库的最新版本到本地,然后合并处理冲突后,再次push。

4.7 fork

可以将别人的公开仓库fork到自己的仓库中,随意修改。

4.8 Pull Request

当对其他人仓库的文件进行修改后,此时没有权限取提交修改,可以向仓库所有者,发起一次pull request请求,请求仓库所有者合并我们的修改,当然也可能遭到拒绝。

5.9 邀请成员

点击后可以生成专属邀请链接,发送链接给指定的用户,用户打开后即可以选择加入团队,加入团队后可以直接向团队的仓库提交修改,无需pull request。

第 5 章 IDEA操作Gitee

5.1 配置Gitee

5.1.1 安装Gitee插件

6.1.2 配置Gitee账户

Log In via Gitee...:通过 Gitee 网页授权登录------ 最推荐

Log In with Password...:使用账号密码登录

Log In with Tokens...:使用私人令牌登录

Log In to Gitee Enterprise...:登录 Gitee 企业版

注意 :此处只支持使用邮箱进行登录账号,不支持手机号。

5.2 推送本地项目到Gitee

打开项目后,选择Git:

此时会自动生成远程仓库名和地址,可以自定义:

之后点击share可以自动推送

5.3 克隆远程仓库到本地

之后在以下对话框填入要克隆项目的url:

5.4 拉取远程仓库修改到本地

相关推荐
Zhao-Jichao1 小时前
AI Prompting for Everyone 课程笔记 - 04 联网搜索资源 Web Search Sources
人工智能·笔记
fanged1 小时前
Audio学习8(Pi5+FPGA)(TODO)
学习
金色光环2 小时前
【DSP学习】C2000_PWM中断程序_笔记
笔记·单片机·学习
東隅已逝,桑榆非晚2 小时前
AVL数实现
c++·笔记·学习·算法
摇滚侠2 小时前
《大模型是怎样跑起来的(轻科技)》硬件篇 阅读笔记
人工智能·笔记·科技
m4Rk_2 小时前
【论文阅读】Agent 记忆机制(116):Hybrid Memory——用互补策展与离线巩固构建长期记忆
论文阅读·人工智能·学习·开源·github
一条泥憨鱼2 小时前
【Kafka】零基础学习教程
java·分布式·学习·kafka
CAIE研习社3 小时前
30岁以后学习AI应用,证书能起到什么作用?
人工智能·学习
职豚求职小程序3 小时前
百联集团校招在线测评~IQCAT行测+MAP性格
笔记