Git初识

我们今天来学习一个代码的上传工具——Git

Gitee代码托管平台

首先,我们首先明确一个概念,我们自己的代码是可以上传到一个平台的进行托管的,那么这样的平台有哪些呢?首先比较出名的是:Github

GitHub是一个全球领先的代码托管平台,提供基于Git的版本控制服务。以下是GitHub的一些关键特点和功能:
代码托管: GitHub允许开发者在云端存储和管理他们的Git仓库。这使得团队可以方便地协同工作,追踪代码变更,并在全球范围内共享代码。
版本控制: GitHub建立在Git版本控制系统之上,使用Git的分支、合并和提交等功能,帮助开发者有效地管理和追踪代码变更。
社交协作: GitHub为开发者提供了一系列社交和协作工具。用户可以关注其他用户、Star项目、提出问题、创建合并请求等,促进开发者之间的交流与合作。
问题跟踪: GitHub集成了问题跟踪系统,允许用户报告问题、讨论解决方案,以及分配任务。这对于团队协作和项目管理非常有帮助。
自动化构建与部署: GitHub Actions提供了自动化构建、测试和部署的工作流,帮助开发者更轻松地集成持续集成和持续部署(CI/CD)。
GitHub Pages: 允许用户在GitHub上托管静态网站,方便地展示项目文档、演示页面等。
访问控制: GitHub提供了灵活的访问控制机制,可以管理团队成员对仓库的访问权限,确保代码的安全性和保密性。
GitHub Marketplace: 提供了丰富的集成应用和工具,可以扩展GitHub的功能,满足不同开发团队的需求。
在这里插入图片描述

不过,这个网站是由外国人创建的,对于中国宝宝来说,可能有点吃力。不过没关系,我们中国宝宝有自己的Github:Gitee

Gitee(前身为码云,后更名为Gitee)是中国的一个类似于GitHub的代码托管平台,由中国的一家公司Gitee Inc.(前身为OSChina)开发和维护。以下是Gitee的一些关键特点和功能:
代码托管: Gitee允许开发者在云端存储和管理他们的Git仓库。用户可以创建公开或私有的仓库,并通过Web界面或Git命令行进行代码管理和协作。
Git版本控制: Gitee基于Git版本控制系统,使用Git的分支、合并和提交等功能,帮助开发者追踪和管理代码变更。
国内加速: Gitee为中国用户提供了国内加速服务,使得在中国地区访问和使用Gitee平台更加快速稳定。
企业服务: Gitee提供了企业版服务,为企业用户提供更丰富的功能和支持,包括团队管理、权限控制、安全审计等。
问题跟踪: Gitee集成了问题跟踪系统,允许用户报告问题、讨论解决方案,以及分配任务。这对于团队协作和项目管理非常有帮助。
CI/CD集成: Gitee提供了持续集成和持续部署(CI/CD)的功能,允许用户在Gitee上设置自动化构建和部署流程。
社交协作: 用户可以关注其他用户、Star项目、加入组织,以及通过评论、合并请求等方式与他人协作。
开发者社区: Gitee拥有一个庞大的开发者社区,提供了丰富的开源项目和资源,为开发者提供学习和交流的平台。
在这里插入图片描述

总的来说,两个平台都可以,不过中国宝宝肯定更加喜欢Gitee,因为没有语言的困扰,所以我们接下来的演示就用Gitee做演示:

Gitee创建账号

首先,我们要申请一个自己的平台,来保管我们自己的代码,我们点击注册:
在这里插入图片描述完成注册:
在这里插入图片描述
进入这个页面,就表明我们创建账号成功:
在这里插入图片描述
好了,这样我们完成了我们的平台注册,接下来是我们的主角Git

Git

我们注册好了自己的平台,现在我们该如何把代码交上去呢?我们要用到Git这个工具:

Git是一个分布式版本控制系统,最初由Linus Torvalds为了管理Linux内核的开发而创建。以下是Git的一些关键特点和功能:
分布式版本控制: Git是一种分布式版本控制系统,每个开发者在本地都有完整的代码仓库副本。这使得开发者可以在没有网络连接的情况下进行工作,并允许更灵活的工作流程。
速度和性能: Git设计追求高效的性能。由于其内部数据结构的优化和存储方式,Git能够快速执行各种操作,如提交、分支、合并等。
分支管理: Git鼓励使用分支进行开发工作。开发者可以轻松地创建、合并和删除分支,而不会影响到主代码库。
版本控制: Git追踪文件的每一个修改,并允许开发者回退到历史的任意版本。这使得团队可以更轻松地管理和追踪代码的变化。
合并与冲突解决: Git提供了强大的合并和冲突解决机制,允许多个开发者同时修改同一个文件,然后将这些修改合并到一个共同的版本中。
开源和免费: Git是一个开源的项目,任何人都可以免费使用和贡献代码。它被广泛应用于各种开源项目和商业项目中。
灵活性: Git提供了丰富的命令行工具和选项,允许开发者根据自己的需求定制和扩展Git的功能。
生态系统: Git拥有庞大的生态系统,有许多第三方工具和服务与Git集成,为开发者提供更丰富的功能和选择。
在这里插入图片描述

点击Downloads,选择相应的版本下载:
在这里插入图片描述

进行配置

gitee的绿点显示

先给大家看看我的gitee:
在这里插入图片描述我们设置之后,我们把代码上传到仓库之后,gitee会自动显示绿点,那么该如何设置呢?
点击三角,下拉:
在这里插入图片描述选择邮箱管理:
在这里插入图片描述在这里插入图片描述
如果是新设置的,这里点击新增,输入自己的邮箱,到时候gitee会往你填的邮箱中发送认证,之后按照指示,就完成了邮箱绑定。

gitee创建仓库

在最上方,选择加号:
在这里插入图片描述
选择新建仓库
在这里插入图片描述在这里插入图片描述
之后,进行相应的设置:
在这里插入图片描述点击创建,然后我们就创建好了一个仓库:
在这里插入图片描述

将仓库克隆到本地

https方式

好了,我们现在要做的就是将这个仓库拉到我们的本地:
点击,克隆/下载:

在这里插入图片描述在这里插入图片描述复制红框里面的代码,然后打开我们本地的文件夹:

在这里插入图片描述然后右键单击,选择显示更多选项:
在这里插入图片描述如果安装Git成功之后,会出现两个Git的图标,我们点击第二个图标:Git Bash Here
在这里插入图片描述之后将我们红框里面的代码粘贴到这里:
在这里插入图片描述回车:
在这里插入图片描述
显示以上的代码,就说明克隆成功,我们看看本地的文件夹:
在这里插入图片描述
会多出一个和我们仓库名字一样的文件夹,我们点进去看看:
在这里插入图片描述
我们发现,这里有.git文件,说明在这一层内是我们的git仓库了,我们以后就在这层进行操作,注意不要轻易修改.git里面的东西,(如果看不到.git,要点击“查看”里面的显示隐藏文件):
在这里插入图片描述

配置邮箱和姓名

如果是新手小白,要把这两行代码粘到git终端:
在这里插入图片描述注意要一条一条的执行,这两行代码是配置以后如果你要提交代码,往哪个人的哪个邮箱投。这里的 --global 是全局设置,意思就是以后你的任何仓库的任何代码都往这个人的这个邮箱对应的账户上发

上传代码

add commit push

设置好了之后,我们创建一个文件

在这里插入图片描述
还是像上次那样,打开Git Bash Here:
在这里插入图片描述输入git add . 这个表示我们把新创建的文件先放到缓冲区里:
在这里插入图片描述回车之后什么也没有,说明添加成功,这时候进行git commit -m “XXXX”,表示你对这次提交代码的一个说明,这个是必须的操作(注意,这里的引号为英文的)。
在这里插入图片描述之后再进行git push:
在这里插入图片描述
当出现上面的文字,就表示我们上传成功了。我们可以回到我们的主页上看看:
在这里插入图片描述gitee上显示了我们的记录。

ssh方式(多账户)

大家如果细心的话,发现我并没有拿刚刚的test仓库做实验,刚刚我用的是我自己最开始用的号,刚刚的test,是我重新创建了一个号进行操作,那就有一个问题我们刚刚设置的姓名邮箱是全局的,这时候我再提交的话是以我的全局邮箱为标准进行提交,不是以我新用户的邮箱,这个该怎么办?

这个时候我们可以为test仓库进行专属的用户邮箱和姓名设置,打开test文件夹:
在这里插入图片描述我们输入git config user.name “XXXXX”,设置这个仓库的专属使用者:
在这里插入图片描述
再输入git config user.email “XXXXX”,设置这个仓库往哪个邮箱对应的账号上进行记录:
在这里插入图片描述这样我们就专属设置了test仓库的专属邮箱和使用者,这个时候,要注意,我们刚刚test进行克隆的时候,使用的是http协议,这种情况,一个账户还好,如果出现多个账户,就有可能出现无法访问的情况:

在同一台计算机上使用 HTTP 方式操作不同的 Gitee(码云)账户可能会导致一些问题,主要涉及到身份验证和会话管理方面。以下是一些可能的后果:
认证问题: HTTP 是一种基于无状态的协议,因此在每个请求中都需要进行身份验证。如果你在同一浏览器中同时登录不同的 Gitee 账户,服务器可能会出现混淆,导致你无法正确地访问相应的仓库或资源。
会话冲突: Gitee 使用会话(session)来跟踪用户的登录状态。如果你在同一浏览器中登录了两个不同的账户,会话信息可能会发生冲突,导致一些不一致的问题。
操作混淆: 在同一浏览器中操作不同的账户可能会导致你不小心在不同账户之间进行操作,例如将代码推送到错误的仓库或在错误的账户下创建问题等。

为了避免上述情况的发生,我们的使用ssh协议:

配置ssh秘钥

首先为我们的新账户配置秘钥:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述这里我已经添加了一个密匙。不重要,如果没有,我们就新建一个,我们输入新的密匙名称:
在这里插入图片描述这里要我们粘贴公钥,我们Ctrl+R打开cmd:
在这里插入图片描述输入:

ssh-keygen -t rsa -C “xxxxx@xxxxx.com”

这里填自己的邮箱:
在这里插入图片描述
三次回车,中间出现什么不要管:
在这里插入图片描述去红色路径下寻找我们生成的文件:

在这里插入图片描述
以记事本打开我们的id_rsa.pub:
在这里插入图片描述将全部的文字粘贴到框里:
在这里插入图片描述点击确定,我们创建好一个ssh公匙,在进行ssh克隆之前,我们先把http协议的连接取消掉:git remote -v查看远端连接:

在这里插入图片描述发现还没有取消,git remote rm origin取消远端:在这里插入图片描述
输入:git remote add origin git@gitee.com:cuoguoni-zh/test.git(冒号后面的是填写自己账户下的仓库)

在这里插入图片描述

此时创建新文件:进行add commit push
在这里插入图片描述
会发现,被拒绝了,此时我们要删除我们本地的仓库,重新用ssh来克隆:
在这里插入图片描述
将红框里的代码粘入git中:
在这里插入图片描述进行专属配置:
在这里插入图片描述

再进行add commit push,我们创建一个文件:
在这里插入图片描述在这里插入图片描述发现提交成功,我们往主页看看:
在这里插入图片描述已经有记录了。

两个小问题

之前我演示的时候,重新生成了ssh公匙,所以之前的ssh公匙作废了,所以才会出现拒绝访问,大家如果是第一次创建,不用像我一样删了重新克隆,可以直接用指令:

git remote add origin git@gitee.com:+红框框里部分

在这里插入图片描述
之后add commit 正常执行,push要用git push -u origin master,创建总分枝。

还有,如果用的是https协议,为了保证安全,每次传输最后都会有这两个东西:
在这里插入图片描述第一个会让你输你的用户名,就是头像下面这个东西:
在这里插入图片描述
之后输入相应的密码,就可以了,其实可以设置免密,这个我们之后再聊。

相关推荐

  1. <span style='color:red;'>Git</span><span style='color:red;'>初</span><span style='color:red;'>识</span>

    Git

    2024-02-06 19:56:05      30 阅读
  2. <span style='color:red;'>Git</span><span style='color:red;'>初</span><span style='color:red;'>识</span>

    Git

    2024-02-06 19:56:05      31 阅读
  3. Dockerfile

    2024-02-06 19:56:05       38 阅读
  4. MyBatis

    2024-02-06 19:56:05       48 阅读
  5. docker

    2024-02-06 19:56:05       31 阅读

最近更新

  1. uniapp如何发送websocket请求

    2024-02-06 19:56:05       0 阅读
  2. react

    react

    2024-02-06 19:56:05      0 阅读
  3. 光通信领域常见的会议和期刊总结

    2024-02-06 19:56:05       0 阅读
  4. uniapp上传文件并获取上传进度

    2024-02-06 19:56:05       0 阅读
  5. C++继承

    C++继承

    2024-02-06 19:56:05      1 阅读
  6. ArcGIS Pro SDK (八)地理数据库 2 定义

    2024-02-06 19:56:05       1 阅读

热门阅读

  1. c实现顺序表

    2024-02-06 19:56:05       33 阅读
  2. SpringBoot之整合PageHelper分页插件

    2024-02-06 19:56:05       35 阅读
  3. idea 使用外包本地包

    2024-02-06 19:56:05       29 阅读
  4. Web课程学习笔记--CSS盒模型

    2024-02-06 19:56:05       37 阅读
  5. 2.4学习周结

    2024-02-06 19:56:05       26 阅读
  6. k8s学习-Kubernetes Ingress

    2024-02-06 19:56:05       33 阅读
  7. 分布式光伏电站开发存在哪些问题?

    2024-02-06 19:56:05       33 阅读
  8. 【Flink】FlinkSQL的DataGen连接器(测试利器)

    2024-02-06 19:56:05       32 阅读
  9. 为什么SpringBoot胖Jar不好

    2024-02-06 19:56:05       43 阅读
  10. Hadoop-Yarn-启动篇

    2024-02-06 19:56:05       34 阅读