Linux17 Git 指令

Git 指令

  • [1. 配置命令 - git config](#1. 配置命令 - git config)
  • [2. 针对仓库初始操作](#2. 针对仓库初始操作)
    • [仓库初始化 - init](#仓库初始化 - init)
    • [克隆仓库 - clone](#克隆仓库 - clone)
    • [添加远程仓库 - remote](#添加远程仓库 - remote)
  • [3. 分支操作](#3. 分支操作)
    • [创建分支 - branch](#创建分支 - branch)
    • [切换分支 - checkout](#切换分支 - checkout)
    • [重命名分支 - m](#重命名分支 - m)
    • [合并分支 - merge](#合并分支 - merge)
  • [4. 代码上传过程 - add - commit - push](#4. 代码上传过程 - add - commit - push)
    • [添加文件到暂存区 - add](#添加文件到暂存区 - add)
    • [暂存区提交到本地仓库 - commit](#暂存区提交到本地仓库 - commit)
    • [本地推送更改到远程仓库 - push](#本地推送更改到远程仓库 - push)
  • [5. 回退到某个提交状态 - reset](#5. 回退到某个提交状态 - reset)
  • [6. 查看信息](#6. 查看信息)
    • [查看仓库状态 - status](#查看仓库状态 - status)
    • [查看提交历史 - log](#查看提交历史 - log)
    • [查看配置信息 - list](#查看配置信息 - list)
  • [7. 从远程仓库拉取更改 - pull](#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将这些远程的更新拉取到本地仓库,以保持本地代码和远程仓库代码的同步
相关推荐
我是唐青枫22 分钟前
Linux iptables 命令详解
linux·运维·网络
Mr.yuliu1 小时前
IT成长之路-ubuntu驱动篇
linux·服务器·ubuntu
咖猫1 小时前
linux bash shell http请求脚本
linux·http·bash
ascarl20101 小时前
准确--在 AlmaLinux 9.2 上快速搭建 FTP 服务器
linux·运维·服务器
^_^ 纵歌1 小时前
linux添加附加磁盘
linux·运维·服务器
Peter_chq1 小时前
【计算机网络】多路转接之epoll
linux·服务器·c语言·网络·c++·后端·epoll
檬柠wan1 小时前
Linux系统硬件老化测试脚本:自动化负载与监控
linux·运维·自动化
寒冰碧海2 小时前
Linux 下自动化之路:达梦数据库定期备份并推送至 GitLab 全攻略
linux·自动化·gitlab
LYK_HAHA2 小时前
kafka+zookeeper集群搭建
linux·zookeeper·kafka