Git基础学习(二)

server/2024/9/23 11:15:28/

文章目录

  • 一. Git方式的基本概念
  • 二. Git的使用方式
  • 三. Git的常规操作
    • 1. 创建版本库(本地仓库)
    • 2. 设置用户信息配置
      • 1> 查看git的配置列表
        • a. 全局变量
        • b. 局部变量
        • c. 修改对应文件进行配置
        • d. 有个别仓库需要配置成其他用户信息,可进入目标仓库所在文件,
        • e. 生成SSH Key公钥
    • 3. 使用本地仓库(记得初始化才能使用)
      • 1> 将需要管理的文件添加到暂存区:
      • 2> 接下来,提交暂存区中的变更到本地仓库,并添加一个描述信息:

一. Git方式的基本概念

Git是一种分布式版本控制系统,用于跟踪和管理文件的修改历史。它具有以下基本概念和使用方式:

方式概念
代码库(Repository)代码库是用于存储项目的所有文件和历史记录的地方。可以是本地的仓库,也可以是远程的仓库(如GitHub、GitLab等)。
分支(Branch)分支是代码库中的一个独立的开发线。它可以用于并行开发不同的功能或修复不同的问题。默认情况下,Git创建一个名为"master"的主分支。
提交(Commit)提交是对代码库的一次修改,记录了一系列文件的更改。每个提交都有一个唯一的标识符(SHA-1哈希值),可以用于回溯历史。
检出(Checkout)检出是指切换到不同的分支或提交,以查看或修改项目的不同状态。检出分支或提交会将工作目录(Working Directory)中的文件更新为所选版本。
合并(Merge)合并是将一个分支的更改合并到另一个分支的操作。它会自动解决冲突并生成一个新的合并提交。
冲突(Conflict)冲突是指在合并分支时发生的无法自动解决的冲突。需要手动解决冲突后才能完成合并。
推送(Push)推送是将本地分支的修改上传到远程仓库的操作。它将本地分支的提交同步到远程分支。
拉取(Pull)拉取是将远程仓库的修改下载到本地的操作。它会自动合并远程分支和本地分支的修改,或者在有冲突时提示解决。

二. Git的使用方式

方式使用方法
初始化一个新的代码库使用git init命令在当前目录创建一个新的代码库。
克隆一个现有仓库使用git clone命令在本地创建一个仓库的副本。
添加和提交文件使用git add命令将文件添加到暂存区,然后使用git commit命令提交修改。
创建和切换分支使用git branch命令创建一个新的分支,并使用git checkout命令切换到该分支。
合并分支使用git merge命令将一个分支的修改合并到另一个分支。
推送和拉取使用git push命令将本地分支的修改推送到远程仓库,使用git pull命令拉取远程仓库的更新到本地。
查看和比较历史使用git log命令查看提交历史,使用git diff命令比较不同版本的文件差异。

以上是Git的基本概念和使用方式的简要介绍。Git提供了强大的版本控制功能,可以在团队协作中有效地管理和追踪代码的修改历史。

三. Git的常规操作

1. 创建版本库(本地仓库)

首先,打开终端或命令行界面,进入要创建版本库的目录下。
接着,使用以下命令初始化一个空的 Git 仓库:

git init

即初始化本地仓库

说明:
①初始化成功后,文件夹里会生成 .git 文件夹

②默认掩藏,可通过设置 显示隐藏文件夹 查看。

默认情况下,还是文件夹中不显示,免得误操作,误删。

③若删除 .git 文件夹,即把此git仓库删除,文件变成普通非git控制的文件。

2. 设置用户信息配置

git_47">1> 查看git的配置列表

git config --list

如果没有配置东西,应该是空的。照着下面配置完成后,你可以再试一下该命令,就会出现一系列配置信息。
将username和email换成github(或者其它类似远程仓库)的用户名和邮箱。
d0a7aad8e86a4b1ebe54d7f4ecc61f61.png

a. 全局变量

–global 表示全局的,即当前用户都有效,该配置会出现在 ~/.gitconfig 文件中,~表示当前用户的目录,比如我的是:C:\Users\username.gitconfig ,打开该文件你会发现如下图所示的内容:
2.png

b. 局部变量

既然有全局的,那么肯定有局部的啊!局部的是不加 --global 的,如下:

git config  user.name  "username"  
git config  user.email  "email"

注意:局部变量覆盖全局变量!!!和编程语言里面的变量关系是一样的。
我在上面我新建的那个仓库里,随便提交了一点东西,然后查看提交日志如下:
3.png

c. 修改对应文件进行配置

修改~/.gitconfig 文件相关设置就好了。

d. 有个别仓库需要配置成其他用户信息,可进入目标仓库所在文件,

右键点击:Git Bash Here ,进入命令行后输入:

git config user.name “新用户名”

git config user.email “新邮箱”

来单独设置仓库的config。

e. 生成SSH Key公钥
  1. 指令:ssh-keygen -t rsa -C “邮箱名”
  2. bash上显示:
    在这里插入图片描述
    这里输入自定义保存key的文件名
  3. SSH Key公钥说明
    ①注意生成的ssh key所在文件位置。
    ②设置密码,后面的确认密码也是一样情况
  4. 在代码托管平台上添加本地仓库SSH公钥

之后就能把本地仓库跟远程仓库关联了

3. 使用本地仓库(记得初始化才能使用)

1> 将需要管理的文件添加到暂存区:

git add <file>

你也可以使用以下命令一次性将所有变更添加到暂存区:

git add .

2> 接下来,提交暂存区中的变更到本地仓库,并添加一个描述信息:

git commit -m "Initial commit"

现在,你已经成功地创建了一个版本库。你可以使用其他 Git 命令来管理它,例如:

git status:查看当前工作区和暂存区的状态。
git log:查看提交记录。
git branch:管理分支。
git remote:管理远程仓库。


http://www.ppmy.cn/server/105177.html

相关文章

fl studio mobile2024最新官方版V4.6.8安卓版+iOS苹果版

fl studio mobile&#xff0c;一款非常好用的音乐制作软件。该软件具有丰富多样的音乐类型让大家选择&#xff0c;内置多个好用的编辑工具、渲染工具、特效工具等可以使用。用户可以自由使用软件中的任何道具&#xff0c;直接在手机上编曲&#xff0c;进行音乐创作&#xff0c;…

JUnit 5和Mockito进行单元测试!

1. JUnit 5 基础 JUnit 5是最新的JUnit版本&#xff0c;它引入了许多新特性&#xff0c;包括更灵活的测试实例生命周期、参数化测试、更丰富的断言和假设等。 1.1 基本注解 Test&#xff1a;标记一个方法为测试方法。 BeforeEach&#xff1a;在每个测试方法之前执行。 AfterEac…

入门网络安全工程师要学习哪些内容

大家都知道网络安全行业很火&#xff0c;这个行业因为国家政策趋势正在大力发展&#xff0c;大有可为!但很多人对网络安全工程师还是不了解&#xff0c;不知道网络安全工程师需要学什么?知了堂小编总结出以下要点。 网络安全工程师是一个概称&#xff0c;学习的东西很多&…

25考研|张宇高数18讲vs武忠祥强化,谁性价比更高?

最近有很多刚结束考研数学基础的同学&#xff0c;很急&#xff0c;因为快9月了&#xff0c;还没开始强化&#xff0c;到底该跟张宇老师还是武忠祥老师呢&#xff1f; 这个真的要分情况来看&#xff01; 因为25考研&#xff0c;张宇老师强化课程大改版&#xff0c;不一定适合所…

Android 12中读写SD卡,提示Operation not permitted问题处理

1、问题原因&#xff1a; 安卓11开始,强化了对SD卡读写的管理&#xff0c;引入了MANAGE_EXTERNAL_STORAGE权限&#xff0c;而之前的WRITE_EXTERNAL_STORAGE已经失效了。 并且MANAGE_EXTERNAL_STORAGE权限只能跳转设置页面申请。 2、解决方案 1、添加 <uses-permission an…

利用API返回值实现商品信息的自动化更新

利用API返回值实现商品信息的自动化更新是一个涉及到数据交互、数据处理和自动化脚本编写的任务。以下是一个基本的步骤指南&#xff0c;帮助你实现这一过程&#xff1a; 1. 确定API接口 首先&#xff0c;你需要确定能够提供商品信息的API接口。这通常是由商品数据提供商&…

大模型大厂面试100问集锦:涵盖字节/阿里/美团/滴滴/华为/腾讯等诸多大厂

近期&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 我总结了…

反射机制的效率

由于Java反射是要解析字节码&#xff0c;将内存中的对象进行解析&#xff0c;包括了一些动态类型&#xff0c;而JVM无法对这些代码进行优化。因此&#xff0c;反射操作的效率要比那些非反射操作低得多&#xff01; 做一个简单的测试感受一下反射的效率。 反射机制的效率测试 …