当前位置: 首页 > article >正文

Linux17 Git 指令

Git 指令

  • 1. 配置命令 - git config
    • 配置用户姓名(name)
    • 配置用户电子邮件(email)
    • 配置默认初始分支名称(branch)
    • 配置默认编辑器(core.editor)
  • 2. 针对仓库初始操作
    • 仓库初始化 - init
    • 克隆仓库 - clone
    • 添加远程仓库 - remote
  • 3. 分支操作
    • 创建分支 - branch
    • 切换分支 - checkout
    • 重命名分支 - m
    • 合并分支 - merge
  • 4. 代码上传过程 - add - commit - push
    • 添加文件到暂存区 - add
    • 暂存区提交到本地仓库 - commit
    • 本地推送更改到远程仓库 - push
  • 5. 回退到某个提交状态 - reset
    • 默认重置
    • 软重置
  • 6. 查看信息
    • 查看仓库状态 - status
    • 查看提交历史 - log
    • 查看配置信息 - list
  • 7. 从远程仓库拉取更改 - pull

1. 配置命令 - git config

  • git config是 Git 用于获取和设置配置变量的命令。这些配置变量控制着 Git 的行为和外观的各个方面,从用户标识信息到操作的细节设定等诸多内容。
  • Git 的配置有三个层次:系统级、全局级和仓库级
  • 系统级配置:适用于系统中所有用户和所有 Git 仓库,它的配置文件通常位于 Git 的系统安装目录下(如/etc/gitconfig)。这些配置一般由系统管理员设置,用于规定整个系统范围内 Git 的基本规则,例如设置全局的协议、路径等。不过,普通用户通常较少直接操作这个层次的配置。
  • 全局级配置(–global):正如前面提到的,这是应用于当前用户在系统中所有 Git 仓库的配置。它的配置文件一般位于用户的主目录下(如~/.gitconfig)。这个层次的配置用于定义用户的个人习惯和通用设置,像用户的姓名、邮箱、默认的文本编辑器等,这些设置会在用户操作的所有 Git 仓库中生效。
  • 仓库级配置:是针对特定的 Git 仓库的配置,配置文件位于仓库的.git目录下(如/.git/config)。仓库级别的配置会覆盖全局级和系统级的相同配置项。这使得在具体项目中,可以根据项目的特殊要求对 Git 进行更精细的设置,比如项目特定的合并策略、忽略文件的特殊规则等。

如果是全局配置需要加 --global选项,如果是仓库级配置则不需要

配置用户姓名(name)

git config --global user.name "your name"

这里的Your Name是你希望在提交记录中显示的名字(全局配置)。

配置用户电子邮件(email)

git config --global user.email "your@email.com"

这是用于识别提交者身份的重要信息(全局配置)。

配置默认初始分支名称(branch)

git config --global init.defaultBranch <name>
  • Git 在创建新仓库时,默认会将初始分支命名为 “master”。
  • 这里的就是你想要设置的新的初始分支名称,之后再创建新的 Git 仓库时,初始分支就会按照你设置的名称来命名了。

配置默认编辑器(core.editor)

git config --global core.editor [编辑器命令]
  • 如果需要把默认编辑器改成vim,git config --global core.editor vim

2. 针对仓库初始操作

仓库初始化 - init

git init

在当前目录下创建一个新的 Git 仓库。这会在目录中生成一个隐藏的.git文件夹,用于存储仓库的所有版本控制信息。例如,在一个新的项目文件夹中执行git init后,该文件夹就变成了一个可以被 Git 管理的仓库。

克隆仓库 - clone

git clone repository-url

用于从远程服务器(如 GitHub、GitLab 等)克隆一个现有的 Git 仓库到本地。其中 repository - url 是远程仓库的地址
这会在本地创建一个和远程仓库同名的文件夹,并将远程仓库的所有内容(包括代码、文件历史等)下载到这个文件夹中

添加远程仓库 - remote

git remote add [remote - name] [remote - repository - url]

本地仓库添加一个远程仓库
例如,git remote add origin https://github.com/user/my_repository.git,这里origin是远程仓库(必须在gitee或者github创建好)的名称(通常使用origin),后面是远程仓库的地址

3. 分支操作

创建分支 - branch

git branch 分支名称

本地仓库中创建一个新的分支。例如,git branch new_feature会创建一个名为new_feature的新分支。

切换分支 - checkout

git checkout 分支名称

切换到指定的分支。例如,git checkout new_feature会从当前分支切换到new_feature分支。

重命名分支 - m

  1. 如果你当前正处于要重命名的分支上
  • git branch -m <新分支名称>
  • 当前所在的分支名自动修改成这个新名称
  1. 如果当前所处分支不是要修改的分支
  • git branch -m <原分支名称> <新分支名称>
  • 重命名其他分支

合并分支 - merge

git merge 分支名称

指定分支合并到当前分支。例如,在main分支上执行git merge new_feature,会将new_feature分支的内容合并到mian分支。

4. 代码上传过程 - add - commit - push

添加文件到暂存区 - add

git add filenames

将指定的文件添加到 Git 的暂存区。暂存区是一个中间区域,用于准备要提交的文件修改
如果想添加目录下的所有文件,可以使用git add .(注意,“.” 表示当前目录下的所有文件和子目录,包括新建的文件和修改后的文件)。

暂存区提交到本地仓库 - commit

git commit

暂存区的文件提交到本地仓库,并自动打开默认编辑器(可以通过git config命令设置),在其中可以输入提交说明。提交说明应该简洁明了地描述本次提交所做的更改。

git commit -m "提交说明"

暂存区的文件提交到本地仓库,并添加一个提交说明(commit - message)。提交说明应该简洁明了地描述本次提交所做的更改。

git commit --amend
  • 它允许你修改最近一次的提交
  1. 当你只想要修改最近一次提交的提交信息时,执行git commit --amend命令后,Git 会打开默认的文本编辑器(可以通过git config命令设置),在编辑器中,你可以修改提交信息。修改完成后保存并退出编辑器,Git 就会使用新的提交信息更新最近一次的提交。
  2. 如果你在提交后发现遗漏了一些文件,首先需要将这些文件添加到暂存区(使用git add命令),然后执行git commit --amend。Git 会将暂存区中的这些文件添加到最近一次提交中,并且更新提交时间为当前时间。

本地推送更改到远程仓库 - push

git push [remote - name] [branch - name]

本地分支的更改推送到远程仓库
例如,git push origin main会将本地main分支的内容推送到名为origin的远程仓库的main分支。

  • 使用场景:
    当你在本地仓库完成了代码的开发、修改或者新功能的添加后,使用git push将这些变更发送到远程仓库,这样团队中的其他成员就可以获取到你所做的更新

5. 回退到某个提交状态 - reset

  • 如果add后发现这些文件并不是想要的,可以进行回退操作清空暂存区

默认重置

语法: git reset HEAD

  • 这是git reset命令的默认行为。它会将暂存区的文件取消暂存,即将git add的内容清空,同时把文件的修改内容保留在工作目录中
  • HEAD的定义和作用
  • HEAD 是一个指针,它指向当前所在的分支引用(在 Git 中,分支实际上是一个指向提交的指针)它代表你当前工作目录中的代码所对应的最新提交。
  • 当你执行git add 操作时,你是将工作目录中的文件修改添加到暂存区。这个过程并没有改变 HEAD 指针所指向的位置
  • 执行git commit 操作时,会创建一个新的提交记录,并且 HEAD 指针会移动到这个新的提交上
  • 当你使用 git checkout 来切换分支时,HEAD 会指向新分支的最新提交
  • 默认重置无法重置已经 commit 的文件软重置可以

软重置

  • 写法1:git reset --soft HEAD^数字
  • 写法2:git reset --soft HEAD~数字
  • 软重置可以指定回退的提交数量,比方说多次 commit 但没 push,就可以通过 HEAD 后面的数字回退之前多次的提交,但回退完之后的文件会回到暂存区

6. 查看信息

查看仓库状态 - status

git status

显示当前仓库的状态,包括哪些文件被修改了、哪些文件在暂存区、哪些文件没有被跟踪等信息。
例如,在修改了一些文件后执行git status,会看到类似这样的信息:
On branch main:显示当前所在分支是main
Changes not staged for commit:未暂存的更改
modified: file1.txt:列出被修改但未添加到暂存区的文件
Untracked files:未被跟踪的文件
new_file.cpp:列出新创建但未添加到 Git 的文件

查看提交历史 - log

git log

显示仓库的提交历史,包括每次提交的作者、日期、提交说明和唯一的提交哈希值等信息。
例如,执行git log后会看到类似如下的输出:
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6(提交哈希值)
Author: John Doe johndoe@example.com(作者信息)
Date: Mon Jan 01 12:00:00 2024 -0500(提交日期)
Add new functionality to the system(提交说明)

查看配置信息 - list

git config --list --global

7. 从远程仓库拉取更改 - pull

git pull [remote - name] [branch - name]

远程仓库拉取指定分支的更新并合并到本地对应的分支
例如,git pull origin main会从名为origin的远程仓库的main分支拉取更新并合并到本地main分支(前提,必须是本身就处在main分支下,否则可能会与其他分支合并)。

  • 使用场景
    在团队协作开发过程中,其他成员可能会对远程仓库中的代码进行修改和更新。你可以使用git pull将这些远程的更新拉取到本地仓库,以保持本地代码和远程仓库代码的同步

http://www.kler.cn/a/412096.html

相关文章:

  • 微信小程序2-地图显示和地图标记
  • 2024小迪安全基础入门第七课
  • 【大数据技术基础】 课程 第8章 数据仓库Hive的安装和使用 大数据基础编程、实验和案例教程(第2版)
  • 使用client-go在命令空间test里面对pod进行操作
  • AI时代的PPT革命:智能生成PPT工具为何备受青睐?
  • 文件内容扫描工具
  • NIO三大组件
  • OpenAI 是怎么“压力测试”大型语言模型的?
  • C#中面试的常见问题005
  • 【ArcGIS Pro实操第10期】统计某个shp文件中不同区域内的站点数
  • 探索Python自动化新境界:Helium库揭秘
  • 三六零[601360]行情数据接口
  • Angular面试题汇总系列一
  • 玩转 Burp Suite (1)
  • 硬菜!高精度!BO-Transformer贝叶斯优化编码器多特征分类预测/故障诊断
  • 【jupyter】linux服务器怎么使用jupyter
  • Android 网络通信(三)OkHttp实现登入
  • 【es6进阶】vue3中的数据劫持的最新实现方案的proxy的详解
  • java-使用HSSFWorkbook编辑excel文件
  • 《Hello YOLOv8从入门到精通》5,颈部网络(Neck)结构、核心源码和参数调优
  • 用 C++ 写一个 AWS Lambda Hello World
  • zabbix“专家坐诊”第265期问答
  • 【AI系统】Tensor Core 架构演进
  • CTF之密码学(密码特征分析)
  • 【SpringBoot】HttpClient
  • SSL/TLS,SSL,TLS分别是什么