Git_Day01
文章目录
Git架构
- 其中
git init
是将当前文件夹创建成为一个可供git操作的文件夹,此时当前的文件夹就可以被看作是一个工作区 git add .
是将工作区中的内容添加到暂存区git commit -m "注释"
将内容从暂存区提交到本地仓库- 通过
git push
将内容提交到公共的代码平台上去,即Github或者是Gitee(码云) - 之后我们需要使用的时候就通过
git pull
将平台上的代码拉下来修改
GIT区域介绍
创建文件夹 git init
1、git有3个区域
- 工作区(
working directory
):项目的根目录,不包括.git在内的其他文件- 暂存区(
stage area
):是一个看不见的区域,git add
命令就是将文件添加到该区域,git add .表示添加所有,git status
命令可以查看当前暂存区的文件,文件标识改了,(没有加号重启一下)- 本地仓库(
repository
):指在工作目录下创建的一个.git目录,这是一个隐藏目录。git commit -m "日志名"
可以将暂存区的代码提交到本地仓库。git push -u origin master
就是将本地仓库的代码推送到远程仓库2、git文件的3种状态(尝试查看文件图标变化)
- 已修改(modified),存在于工作区,文件修改后的状态
- 已暂存(staged),存在于暂存区,采用
git add
命令后的状态- 已提交(committed),存在于本地仓库,采用
git commit
命令后的状态
Git安装
概述:
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理,是目前使用范围最广的版本管理工具。
下载安装:
下载地址:https://git-scm.com/
下载后傻瓜式一键安装,建议安装在英文目录下
安装完成后在开始菜单中能够找到该程序
或者右击桌面,能够看到如下Git选项
- GUI为用户界面模式
- Bash为命令行模式
Git的常用命令
命令 | 备注 |
---|---|
git status | 查看仓库的改变情况,会有相关的提示操作出现 |
git add | 直接添加所有改动的文件 |
git commit -m “note” | 确认生成本地的版本,note是 版本特点说明 |
git push | 将改动上传到github,若没有指定分支,则需要使用git push origin master |
git log | 查看版本更新情况 |
git reset --hard x | 回退到某个本地版本,x为git log中出现的hash值的前七位 |
git clean --xf | 清除所有的未提交文件 |
Git基本操作:
1、创建一个目录
$ mkdir firstgit
2、进入该目录
$ cd firstgit/
3、查看当前所在磁盘的位置
$ pwd
/f/work/firstgit
4、初始化仓库
$ git init
Initialized empty Git repository in F:/work/firstgit/.git/
Git安装完成之后用于上传代码到Gitee和从Gitee拉取代码的操作
-
由于git是分布式管理工具,需要输入用户名和邮箱以作为标识,因此,我们按右键打开
Git Bash
命令框,在命令行输入如下配置git config --global user.name "Your Name" Your Name:填写你想要的名字,可以为中文 git config --global user.email "email@example.com" email@example.com:填写邮箱地址,可以使用自己的QQ邮箱,方便记忆
-
生成SSH公钥,许多 Git 服务器都使用 SSH 公钥进行认证,所以我们也需要配置该公钥,百度搜索git ssh密钥生成 ,建议使用我给的命令
# 输入如下命令,三次回车即可生成 ssh key ssh-keygen -t rsa -C "email@example.com" email@example.com:这里的邮箱是自己之前设计的邮箱 ssh-keygen -t rsa -C "email@example.com" 是一个用于生成 SSH 密钥对的命令,具体含义如下: ssh-keygen 是一个用于生成和管理 SSH 密钥的命令行工具。 -t rsa 参数指定要生成 RSA 类型的密钥对。RSA 是一种非对称加密算法,用于在 SSH 连接中进行身份验证和数据传输的加密。 -C "email@example.com" 参数用于在生成的密钥中添加注释或标识信息。这里的 "email@example.com" 是用于标识此密钥对所关联的用户或身份的电子邮件地址。 运行该命令后,ssh-keygen 会生成两个文件: id_rsa:这是私钥文件,应该严格保密,不应与他人共享。 id_rsa.pub:这是公钥文件,可以将其复制并添加到需要进行 SSH 连接的服务器或服务上,以进行身份验证。 生成密钥对后,您可以使用私钥与远程服务器建立安全的 SSH 连接,并使用公钥将您的身份验证信息发送给服务器以进行验证。这有助于确保连接的安全性,并允许您进行安全的远程管理。 在 ssh-keygen 命令中,-C 和 -t 是两个参数,分别代表以下含义: -C "email@example.com" 参数: 含义:该参数用于添加一个注释或标识信息到生成的密钥文件中。 作用:通常用于标识此密钥对所关联的用户或身份。在参数后面提供的字符串将作为注释保存在公钥文件中,可以帮助您识别不同的密钥对所属的用户或目的。 -t rsa 参数: 含义:该参数用于指定要生成的密钥类型。 作用:在这个参数中,rsa 指定了使用 RSA 算法生成密钥对。RSA 是一种非对称加密算法,用于在 SSH 连接中进行身份验证和数据传输的加密。它生成一对密钥:公钥和私钥。公钥用于进行身份验证,而私钥必须妥善保管,用于解密和进行 SSH 连接时的身份验证。 综上所述,-C 参数允许您为生成的密钥文件添加一个注释或标识信息,而 -t 参数则用于指定要生成的密钥类型,这里是 RSA 密钥对。这两个参数在生成 SSH 密钥对时提供了一些额外的灵活性和标识信息的能力。
这里生成的邮箱可以在此电脑C盘之下的用户目录下的本机用户名下的.ssh文件(没找到这个文件的话建议打开隐藏文件试一下)中找到私钥和公钥,这个之后有用
-
在gitee上注册一个账号,登录进入以后点击头像设置,点击邮箱管理,然后在邮箱管理中配置自己的邮箱,这个必须要配置,可以使用QQ邮箱后面用的上
-
点击ssh公钥将之前设置的公钥粘贴到指定位置,可以给公钥改个名字,不改也行
-
点击头像新建仓库按照要求进行操作,开源许可证随便选一个就行,语言和gitignore都选择java,设置模板是readme文件,选择但分支模型(只创建master分支)
-
打开Git Bash终端输入如下命令进行连接测试
ssh -T git@gitee.com ssh -T git@gitee.com 是一个用于测试 SSH 连接的命令。它的作用是验证您的SSH密钥是否配置正确以及与Gitee(码云)之间的连接是否正常。 具体而言,该命令会尝试使用 SSH 协议连接到 Gitee,并通过提供的 Git 用户(git@gitee.com)进行身份验证。如果您的SSH密钥正确配置,并且与 Gitee 上的帐户关联,您将收到一条欢迎信息,表明您已成功建立了SSH连接。这样,您就可以通过SSH协议进行与Gitee的交互操作,例如进行代码克隆、推送和拉取等。 请注意,该命令只用于测试SSH连接,不会执行其他操作。如果您需要执行其他Git操作,如克隆或进行其他版本控制操作,请使用相应的Git命令,如 git clone、git push 等。
-
使用命令同步代码
代码同步有3个步骤:add、commit、push
a. 在本地磁盘中找一个目录,用于初始化本地仓库存放项目代码
b. 将项目拷贝到该目录下,与.git同级(项目不能为空文件夹),使用git init 命令将该文件夹变成git可以操作的文件夹,这个时候可以看到文件夹中多了一个.git文件
c. 使用名,将hospital-parent添加到本地仓库中,使用
git add 目录
命令d. 将项目提交至本地仓库,使用
git commit -m 备注
命令 -
将远程仓库与本地仓库关联
关联命令: git remote add origin xxx,其中xxx指的是从自己的仓库中的克隆/下载中复制的SSH信息
-
远程仓库与本地仓库合并
这时候不着急推,先将远程仓库的文件同步一次到本地,否则直接推会报错
# 表示从远程master分支拉取代码与本地仓库进行合并,此时一定要保证本地的文件是绿色的 git pull --rebase origin master
此时你会发现本地代码多了几个文件
-
将本地代码推送到远程分支
# push表示推送到远程分支 git push -u origin master
-
之后就可以在gitee仓库中看到提交上去的代码了
后续代码改动使用如下步骤
-
依次执行以下命令(远程仓库没有发生改动的情况),如果远程分支的代码已经被别人修改,需要先拉取代码,再提交,这个过程稍微复杂一点,若存在冲突则涉及到同一行代码的合并
-
执行add
# 将已改动的文件添加到暂存区 git add bigdata17/
执行commit
# 将暂存区的代码提交到本地仓库 git commit -m "第二次提交"
执行push
# 将本地仓库的所有更改推送到远程服务器的master分支 git push origin master(完整写法,远程分支若不存在则会被创建) 或者 git push origin(远程仓库与本地仓库存在分支最终关系的写法) 或者 git push(远程仓库只有一个分支,最简单的写法)
使用idea提交代码到码云
-
首先在idea中下载gitee插件
-
搜索gitee并添加账户(要保障自己的码云是在浏览器中打开的),如果账号密码登陆的话就要输入自己的主邮箱和密码,然后点击apply应用
-
在IDEA中设置Git,在
File
–>Setting
–>Version Control
–>Git
–>Path to Git executable
(或者直接搜索git就可以了)选择你的git安装后的git.exe文件,然后点击Test,测试是否设置成功,然后点击apply应用 -
直接将本项目同步至码云(新建仓库)
点击VCS然后选择Share Project on Gitee就可以提交到码云上面去了
-
如果文件发生改动,在项目根目录(父工程)上右击,选择
Git->Commit Directory
进行提交,提交操作界面,需要你勾选文件,填写日志,并提示了差异对比,提交后颜色发生变化,现在push到远程仓库,码云发生变化
拉取代码
- 可以使用
git clone XXX
,其中xxx是从码云仓库中克隆下载的https选项复制来的,之后使用idea打开就行了 - 还有另外一种做法就是关闭项目,然后可以看到一个
get from VCS
,打开之后将https的链接粘贴在上面,之后选择项目位置,点击clone即可
企业团队协作
我们知道git除了我们个人记录代码外,更多的是在工作中使用。在前面2节课掌握最基础的操作后,接下来我们进入协作实战部分,每个公司都有自己的git协作流程,不同开发工具也有不同的git使用方式。由于Git提供的操作指令集非常庞大,但团队常规能使用到的可能也就30%左右,接下来的内容也就围绕这30%展开。
-
企业使用的Git服务:自建
Gitlab、Codeup、Gitee
-
个人使用的Git服务:
Gitee、GitHub
-
Git区域回顾
Git按照大的分类分为3个区域,分别为:工作区、暂存区、Git仓库
按照细分为5个区域,分别为:工作区、缓存区、贮存区、本地仓库、远程仓库