Git相关入门教程
1. Git概述
1.1 Git的工作机制

- 工作区:存放代码的位置。存放在本地计算机磁盘。
- 暂存区:在工作区写完代码后,需要让Git知道,添加(add)到暂存区。
- 本地库:提交(commit)到本地库后,会产生历史记录。就是你的任何修改在这里都可以看到相应的版本。
1.2 代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。从本地库推送(push)到远程库。
- GitHub:(外网)
- gitee码云:(国内网站)
- GitLab:局域网
2. Git常用命令
2.1 设置用户签名
💥💥Git首次安装必须设置一下用户签名,否则无法提交代码💥。
签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
-
设置用户名:
git config --global user.name TianAqiang
-
设置邮箱:
git config --global user.email 3072592845@qq.com
✨注意:这里设置用户签名和你GitHub的账号没有任何关系
查看设置的用户名和邮箱:
-
方式一:找到
.gitconfig
文件 -
方式二(推荐):使用
git config --global --list
2.2 初始化本地库
想要git管理一个文件,必须先初始化本地库
-
初始化本地库:
git init
查看目录:
ll
(查看隐藏:ll -a) -
查看状态:
git status
2.3 添加到暂存区
添加暂存库:
git add 文件名
从暂存区删掉:
git rm --cached 文件名
2.4 提交本地库
提交本地库:
git commit -m "日志信息" 文件名
查看日志信息:git reflog
查看详细日志信息:git log


2.5 历史版本、版本穿梭
版本穿梭:
git reset --hard 版本号
3. 分支操作
3.1 什么是分支
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独
分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来, 开发自己分支的时
候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是
一个单独的副本。(分支底层其实也是指针的引用)
好处:同时并行推进多个功能开发,提高开发效率。各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
3.2 常用命令
-
查看分支:
git branch -v
-
创建分支
git branch 分支名
-
切换分支
git checkout 分支名
-
合并分支
git merge 分支名
3.3 合并冲突
-
两个分支在同一个文件的同一个位置有两套完全不同的修改。
-
必须人为决定新代码内容手动在文件中修改,之后提交到暂存区、本地库

解决冲突:
- 编辑有冲突的文件
- 删除特殊符号
- 决定要使用的内容
特殊符号: <<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix

4. Git团队协作机制
4.1 团队内协作

团队内协作:push、clone、pull
4.2 跨团队协作

跨团队协作:fork、clone、push、pull request拉取请求->审核->merge、pull
5. GitHub
GitHub 网址: https://github.com/
在GitHub创建完远程仓库后生成链接,如图所示:

-
查看远程地址别名:
git remote -v
-
创建仓库别名:链接一般太长,为了方便取个别名
git remote add 别名 https链接
-
推送到远程库:
git push 别名或链接 master(分支可变化)
-
拉取远程库到本地:
git pull 别名或链接 master
团队内协作:push没有权限时,需要先加入团队
跨团队协作:
团队外成员:先fork到自己账号
外成员修改好想要push:1.push request;2.团队审核;3.Merge pull request -
克隆:
git clone 链接
clone会做如下操作:
- 拉取代码
- 初始化本地仓库
- 创建别名,默认为origin
6. IDEA集成Git
6.1 配置Git忽略文件
IDEA特定文件:

-
为什么要忽略他们?
与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异。
-
怎么忽略?
-
创建忽略规则文件 xxxx.ignore(前缀名随便起,建议是 git.ignore)
这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig 文件引用,建议也放在用户家目录下
git.ignore 文件模版内容如下:
# git.ignore文件 # Compiled class file *.class # Log file *.log # BlueJ files *.ctxt # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.nar *.ear *.zip *.tar.gz *.rar # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* .classpath .project .settings target .idea *.iml
-
在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)
-
6.2 定位 Git 程序

6.3 初始化本地库


6.4 添加到暂存区
右键点击项目选择 Git -> Add 将项目添加到暂存区。

6.5 提交到本地库


6.6 切换版本
在 IDEA 的左下角,点击 Version Control,然后点击 Log 查看版本

右键选择要切换的版本,然后在菜单里点击 Checkout Revision

6.7 创建分支
选择 Git, 在 Repository 里面,点击 Branches 按钮。

在弹出的 Git Branches 框里, 点击 New Branch 按钮。

填写分支名称,创建 hot-fix 分支。

然后再 IDEA 的右下角看到 hot-fix,说明分支创建成功,并且当前已经切换成 hot-fix 分支

6.8 切换分支
在 IDEA 窗口的右下角,切换到 master 分支。

然后在 IDEA 窗口的右下角看到了 master,说明 master 分支切换成功。

6.9 合并分支
在 IDEA 窗口的右下角,将 hot-fix 分支合并到当前 master 分支

如果代码没有冲突, 分支直接合并成功,分支合并成功以后,代码自动提交,无需手动提交本地库。

6.10 解决冲突
如果 master 分支和 hot-fix 分支都修改了代码,在合并分支的时候就会发生冲突。

点击 Conflicts 框里的 Merge 按钮,进行手动合并代码。

手动合并完代码以后,点击右下角的 Apply 按钮

代码冲突解决,自动提交本地库。

7. IDEA集成GitHub
7.1 设置GitHub账号

7.2 分享工程到 GitHub

7.3 push 推送本地库到远程库

⚡⚡注意:
- push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push 的操作是会被拒绝的。
- 也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高!
- 因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!
- 如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!
7.4 pull拉取远程库到本地库


⚡⚡注意:
- pull 是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动合并,如果自动合并失败,还会涉及到手动解决冲突的问题。
7.5 clone 克隆远程库到本地


8. IDEA集成Gitee
8.1 Gitee简介
众所周知, GitHub 服务器在国外, 使用 GitHub 作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,大家也可以使用国内的项目托管网站-码云。
码云是开源中国推出的基于 Git 的代码托管服务中心, 网址是 https://gitee.com/ ,使用方式跟 GitHub 一样,而且它还是一个中文网站。
8.2 IDEA 安装码云插件
Idea 默认不带码云插件,第一步要安装 Gitee 插件。如图所示,在 Idea 插件商店搜索 Gitee,然后点击右侧的 Install 按钮。


8.3 push 到码云远程库
Idea 连接码云和连接 GitHub 几乎一样,首先在 Idea 里面创建一个工程,初始化 git 工程,然后将代码添加到暂存区,提交到本地库,这些步骤上面已经讲过,此处不再赘述。

8.4 码云复制 GitHub 项目

9.总结
内容来自🌹🌹 B站尚硅谷课程 🌹。老师讲得很好,有兴趣的可以听听。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现