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.mzph.cn/pingmian/62260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

泷羽sec---shell作业

作业一 写计算器 使用bc命令 需要进行安装bc 代码如下&#xff1a; #!/bin/bash echo "-----------------------------------" echo "输入 f 退出" echo "可计算小数和整数" echo "用法如&#xff1a;1.12.2" echo "------…

混淆零碎知识点

minifyEnabled true //混淆开关 zipAlignEnabled true // Zipalign优化 shrinkResources true // 移除无用的resource文件 &#xff08;必须要混淆开了之后才才可以设置为true&#xff09; proguard-rules.pro 为混淆文件 //整个文件保留 不被混淆 -keep class com.cn…

DeSTSeg: Segmentation Guided Denoising Student-Teacher for Anomaly Detection

DeSTSeg: Segmentation Guided Denoising Student-Teacher for Anomaly Detection 清华、苹果 个人感觉 Introduction 很自然的让读者理解作者问题的提出&#xff0c;也有例子直接证明了这个问题的存在&#xff0c;值得借鉴&#xff01;&#xff01; Related work写的也很不…

1.1 Qt简介:基于C++的跨平台开发框架

Qt简介&#xff1a;基于C的跨平台开发框架&#xff08;包括Python版本&#xff09; 本系列博文旨在为 Qt 开发者提供一站式的学习资源&#xff0c;内容涵盖从基础控件使用到高级特性如多线程与图形编程等。如果你是第一次来到这里&#xff0c;可以先点击Qt 编程专栏简介&#…

第T9周:Tensorflow实现猫狗识别(2)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 具体实现 &#xff08;一&#xff09;环境 语言环境&#xff1a;Python 3.10 编 译 器: PyCharm 框 架: Tensorflow 2.10.0 &#xff08;二&#xff09;具体…

分布式锁的实现原理

作者&#xff1a;来自 vivo 互联网服务器团队- Xu Yaoming 介绍分布式锁的实现原理。 一、分布式锁概述 分布式锁&#xff0c;顾名思义&#xff0c;就是在分布式环境下使用的锁。众所周知&#xff0c;在并发编程中&#xff0c;我们经常需要借助并发控制工具&#xff0c;如 mu…

搭建帮助中心到底有什么作用?

在当今快节奏的商业环境中&#xff0c;企业面临着日益增长的客户需求和竞争压力。搭建一个有效的帮助中心对于企业来说&#xff0c;不仅是提升客户服务体验的重要途径&#xff0c;也是优化内部知识管理和提升团队效率的关键。以下是帮助中心在企业运营中的几个关键作用&#xf…

深入浅出剖析典型文生图产品Midjourney

2022年7月,一个小团队推出了公测的 Midjourney,打破了 AIGC 领域的大厂垄断。作为一个精调生成模型,以聊天机器人方式部署在 Discord,它创作的《太空歌剧院》作品,甚至获得了美国「数字艺术/数码摄影」竞赛单元一等奖。 这一事件展示了 AI 在绘画领域惊人的创造力,让人们…

python+docx:(二)页眉页脚、表格操作

目录 页眉页脚 表格 表格样式 插入表格 插入行/列 合并单元格 单元格 页眉页脚 页眉页脚操作需要访问文件的section&#xff0c;可通过添加页脚来添加页码。 from docx import Document from docx.enum.text import WD_PARAGRAPH_ALIGNMENT, WD_ALIGN_PARAGRAPH, WD_CO…

Matlab Simulink 电力电子仿真-单相电压型半桥逆变电路分析

目录 一、单相电压型半桥逆变电路仿真模型 1.电路模型 2.电路模型参数 二、仿真分析 三、总结 1.优缺点 2.应用场景 一、单相电压型半桥逆变电路仿真模型 1.电路模型 单相电压型半桥逆变电路是一种常见的逆变电路&#xff0c;主要用于将直流电源转换为交流电源。 &…

Qt 编程专栏目录

Qt 编程专栏简介 Qt为开发者提供了一个强大的跨平台开发工具。无论你是刚刚接触Qt&#xff0c;还是已经在使用它构建复杂应用的开发者&#xff0c;这里都能为你提供有用的知识和实战技巧。 在这个专栏中&#xff0c;我们不仅讲解Qt的使用方法&#xff0c;还会结合实际开发场景…

C++入门——“C++11-lambda”

引入 C11支持lambda表达式&#xff0c;lambda是一个匿名函数对象&#xff0c;它允许在函数体中直接定义。 一、初识lambda lambda的结构是&#xff1a;[ ] () -> 返回值类型 { }。从左到右依次是&#xff1a;捕捉列表 函数参数 -> 返回值类型 函数体。 以下是一段用lam…

Day 2:Java 集合框架(List 和 Map)

目标&#xff1a;掌握日常工作中常用集合的基本操作。 理论知识&#xff1a; List&#xff1a; ArrayList 和 LinkedList 的区别。 特性ArrayListLinkedList底层实现基于动态数组实现&#xff0c;元素安索引存储基于双向链表实现&#xff0c;元素节点彼此连接访问速度随机访…

如何保护LabVIEW程序免遭反编译

在正常情况下&#xff0c;LabVIEW程序&#xff08;即编译后的可执行文件或运行时文件&#xff0c;如 .exe 或 .llb&#xff09;无法直接被反编译出源码。然而&#xff0c;有一些需要特别注意的点&#xff1a; 1. LabVIEW的编译机制 LabVIEW编译器会将源码&#xff08;.vi文件&a…

提升76%的关键-在ModelMapper中实现性能提升的几种方法

目录 前言 一、ModelMapper基础知识 1、深入ModelMapper 2、深入Configuration配置 3、深入MappingEngineImpl 二、默认加载模式 1、基础测试代码 三、持续优化&#xff0c;慢慢提升 1、增加忽略字段 2、设置忽略空值模式 3、设置命名模式 4、采用精准匹配模式 四、…

【C语言】结构体、联合体、枚举类型的字节大小详解

在C语言中&#xff0c;结构体&#xff08;struct&#xff09;和联合体&#xff08;union&#xff09; 是常用的复合数据类型&#xff0c;它们的内存布局和字节大小直接影响程序的性能和内存使用。下面为大家详细解释它们的字节大小计算方法&#xff0c;包括对齐规则、内存分配方…

【优选算法】位运算

目录 常见位运算总结1、基础位运算2、给一个数n&#xff0c;确定它的二进制位的第x位上是0还是13、将一个数n的二进制位的第x位改成14、将一个数n的二进制位的第x位改成05、位图的思想6、提取一个数n的二进制位中最右侧的17、将一个数n的二进制位中最右侧的1变为08、位运算的优…

jQuery九宫格抽奖,php处理抽奖信息

功能介绍 jQuery九宫格抽奖是一种基于jQuery库的前端抽奖效果。通过九宫格的形式展示抽奖项&#xff0c;用户点击抽奖按钮后&#xff0c;九宫格开始旋转&#xff0c;最终停在一个随机位置上&#xff0c;此位置对应的抽奖项为用户的中奖结果。 本文实现九宫格的步骤为&#xf…

AI界的信仰危机:单靠“规模化”智能增长的假设,正在面临挑战

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Unity类银河战士恶魔城学习总结(P149 Screen Fade淡入淡出菜单)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址&#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了进入游戏和死亡之后的淡入淡出动画效果 UI_FadeScreen.cs 1. Animator 组件的引用 (anim) 该脚本通过 Animator 控制 UI 元…