1:Git基本理论:
理解 Git 的基本理论对于任何使用 Git 的开发者来说都是至关重要的 这些核心概念 贯穿 Git 工作的全部过程,帮助你更好地掌握这一工具;
Git的四大工作区域:
工作目录(Working Directory)
工作目录是直接位于你的电脑上的文件系统,它包含了项目的所有文件。当你检出(checkout)一个分支时,Git会将该分支中的文件复制到工作目录中,你可以在这里进行编辑、添加或删除文件等操作。
暂存区(Staging Area)
暂存区是一个准备下一次提交的改动的存放地。它允许你选择性地提交更改,而不是一次性提交工作目录中的所有更改。通过使用
git add
命令,你可以将工作目录中的改动添加到暂存区,准备进行下一次提交。仓库(Repository)
仓库是Git用来保存项目历史记录的地方,它是项目中最重要的部分。仓库中包含了项目的所有提交历史、分支和标签。当你执行
git commit
命令时,暂存区的改动会被提交到仓库中,形成项目历史的一个永久记录。远程仓库(Remote Repository)
远程仓库是托管在服务器上的 Git 仓库,它允许多个开发者协作。远程仓库是团队成员之间共享和同步代码的中心枢纽。当你想要与他人共享你的代码或者从他人那里获取最新代码时,你就需要使用远程仓库。
- 在工作目录(Working Directory) 中进行文件的编辑和添加。
- 使用
git add
将改动推送到暂存区((Staging Area)),准备提交。 - 使用
git commit
将暂存区的改动提交到仓库((Repository),创建一个新的提交记录。 - 最后使用
git push
将本地仓库的更改推送到远程仓库(Remote Repository)。
2: Git 项目搭建 :
项目搭建可以通过两种主要方式进行:本地初始化和远程克隆 这两种方法都是搭建Git项目的基础步骤。本地初始化适合从头开始新项目,而远程克隆适合加入一个已经存在的项目或者获取他人的代码以供参考或协作。无论哪种方式,一旦项目开始,Git的工作流程都是相似的,涉及对工作目录的更改、暂存区的提交准备、本地仓库的提交记录以及与远程仓库的同步。
1:本地仓库搭建:
打开桌面:右键选择:
创建一个空文件
切换盘符
执行初始化命令
git init
初始化成功
远程克隆仓库搭建:
介意大家先上gitee 或者github 创建一个账号 :
这里的远程仓库我们学习可以试着自己创建一个仓库 如何克隆到本地
这里我克隆一个我原来的项目 远程仓库克隆到本地
- HTTP/HTTPS 克隆:通常需要输入用户名和密码,适合于偶尔的克隆或只读访问。
- SSH 克隆:不需要每次交互都输入密码,适合于频繁的克隆和推送,以及需要自动化操作的情况。
直接复制URL 通过输入命令:
git clone < 对应远程仓库的-url>
这样就从远程仓库上把项目克隆到本地了
3:认识Git 文件四种状态:
在 Git 中,文件有四种主要的状态,这些状态描述了文件在工作目录、暂存区和仓库中的位置和变化情况:
未跟踪(Untracked)
- 文件在工作目录中,但尚未被 Git 跟踪。
- 这通常是新添加到目录中的文件,或者被明确忽略的文件(比如通过
.gitignore
文件指定的文件)。- 使用
git add <file>
命令可以将未跟踪的文件添加到暂存区。已修改(Modified)
- 文件在工作目录中被修改,但这些修改还没有被添加到暂存区。
- 这些更改是自上次提交以来的变更。
- 使用
git add <file>
命令可以将已修改的文件添加到暂存区。已暂存(Staged)
- 文件的当前修改已经添加到暂存区,等待下一次提交。
- 这些更改将在下一次执行
git commit
命令时被提交到仓库。已提交(Committed)
- 文件的当前版本已经被提交到了本地仓库。
- 这些提交是永久的,并且构成了项目的历史记录的一部分。
- 已提交的文件可以通过
git log
命令查看。
整理了一下 git 文件操作命令步骤表格 帮助检查和管理这些状态:
操作类型 | 命令 | 描述 |
---|---|---|
初始化仓库 | git init |
在当前目录下创建一个新的Git仓库。 |
添加文件 | git add <文件路径> |
将指定文件的更改添加到暂存区。 |
git add . |
添加当前目录下的所有文件和子目录到暂存区。 | |
git add *.txt |
添加当前目录下所有.txt 文件到暂存区。 |
|
提交更改 | git commit -m "提交信息" |
将暂存区的更改提交到仓库,并附上提交信息。 |
查看状态 | git status |
查看当前工作目录和暂存区的状态。 |
查看差异 | git diff |
查看工作目录中文件自上次提交以来的差异。 |
重命名文件 | mv <旧文件名> <新文件名> |
在文件系统中重命名文件。 |
git add <旧文件名> <新文件名> |
提交重命名操作到Git。 | |
删除文件 | rm <文件名> |
从工作目录中删除文件。 |
git add <文件名> |
提交删除操作到Git。 | |
查看文件历史 | git log --follow <文件名> |
查看文件的版本历史,包括重命名。 |
恢复更改 | git checkout <提交哈希> -- <文件名> |
恢复文件到某个特定的提交状态。 |
恢复所有更改 | git checkout -- . |
将工作目录中的所有更改恢复到最后一次提交的状态。 |
忽略文件 | echo "temp/" > .gitignore |
创建或编辑.gitignore 文件来忽略特定文件或目录。 |
git add .gitignore |
提交.gitignore 文件到Git。 |
|
克隆远程仓库 | git clone <远程仓库URL> |
克隆一个远程仓库到本地。 |
推送到远程仓库 | git push <远程仓库名称> <分支名称> |
将本地更改推送到远程仓库。 |
从远程仓库拉取 | git pull <远程仓库名称> <分支名称> |
从远程仓库拉取最新的更改。 |
4: gitee码云:
创建远程仓库:
新建仓库:
1:创建一个仓库名称 (建议英文)
2:一般选择开源 初始化 设置分支模型
远程仓库SSH公钥生成:
SSH公钥用于在不输入用户名和密码的情况下安全认证用户与其Git服务器之间的连接,它通过加密的方式确保了通信的安全性,并且提供了一种便捷的无密码登录机制。
个人主页 >> 点开设置
安全设置 这里有一个SSH公钥
这里我将我的SSH公钥删除 重新创建一个新的进行演示
磁盘中找到用户目录
找到.SSH文件夹
删除原来生成的公钥文件
输出命令重新生成:
ssh-keygen -t rsa
生成成功
粘贴 第2个文件的内容
拷贝到公钥栏上
4:IEDA 集成git操作:
将需要克隆的远程仓库地址 拉取到本地我们创建好的文件夹中
拉取本地完成
新创建一个IEDA SpringBoot工程:
把从远程上拉下来的git项目文件 直接复制剪切到到我们的本地项目文件目录中 这样操作万能简单方便
远程仓库拉取的git 文件剪切到我们需要使用的本地目录中
SpringBoot 项目就集成好了git远程仓库 (备注集成完以后 记得先Add 所有文件 )
打开下方 Git Log日志 可以看到关于仓库提交的全部的信息
右上角本地项目会出现Git图标
在 Git 中,第一个蓝色的 "Pull" 图标通常表示执行拉取操作,即将远程仓库的更改合并到本地仓库中。这个操作在团队开发中非常常见,因为团队成员会不断地向远程仓库推送他们的更新和更改。(拉取操作确保你的本地代码库与远程代码库保持同步) 一般团队开发的过程中 项目会不定更新 拉取的目的在于 同比实时跟进最新的项目文件信息 这里我们只是做一个测试 所以用不到这个拉取)
第2个绿色图标对勾图标 是 提交(Commit)操作 就是把本地的文件 比如我们需要提交一整个项目到远程仓库 或者提交自己的相关业务文件 都需要通过commit 提交操作到暂存区
可以选择任意文件进行提交 也可以全部提交 可以根据层级不同进行提交 右键点击git 自己需要提交的文件就选择commit file 进行提交
点击commit 即可提交到我们的暂存区 在我们的Git Log中可以看到我们提交的记录
最后一个图标 Push 推送 就是将我们刚刚提交到暂存区的文件 推送push 到远程仓库
我们打开我们的gitee官网 可以看到我的文件已经提交到我们对应的远程仓库了
Git分支:
在讲一个东西 一般我们的分支在项目开发的过程中一共有2个 一个是Test测试环境 一个是dev正式环境 2个分支 正式开发中 就需要涉及到分支之间的操作:
我这里列一个表 整理一下 对应的git分支命令
创建新分支: |
|
切换到分支 |
|
创建并切换到新分支(单步操作): |
|
查看所有分支: |
|
查看分支的详细历史: |
|
合并分支: |
|
删除分支: |
|
推送本地分支到远程仓库: |
|
拉取远程分支到本地: |
|
正常一般分支在iead 进行操作就好了 git命令行没有这个好用 大家了解一下即可 真正在项目中 比如我要创建一个新的分支 在iead 右下角 分支 打开 选择new Branch
新建一个dev分支
创建完成;
还有一个重要的就是合并分支 一般项目部署会有2个环境 对应一个test分支和正式环境dev分支 涉及到分支和分支之间的合并
如: 将测试分支的环境合并到正式分支dev;
案例:
将master 文件合并到 dev 先切换 checkout 到本地master 分支
选择merge into current dev 本地master分支的文件就合并到了 dev
好了Git篇 顺利完结 ...