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将这些远程的更新拉取到本地仓库,以保持本地代码和远程仓库代码的同步
相关推荐
绵绵细雨中的乡音1 小时前
网络基础知识
linux·网络
Peter·Pan爱编程2 小时前
Docker在Linux中安装与使用教程
linux·docker·eureka
kunge20132 小时前
Ubuntu22.04 安装virtualbox7.1
linux·virtualbox
清溪5492 小时前
DVWA中级
linux
Sadsvit3 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
xiaok3 小时前
为什么 lsof 显示多个 nginx 都在 “使用 443”?
linux
苦学编程的谢4 小时前
Linux
linux·运维·服务器
G_H_S_3_4 小时前
【网络运维】Linux 文本处理利器:sed 命令
linux·运维·网络·操作文本
Linux运维技术栈4 小时前
多系统 Node.js 环境自动化部署脚本:从 Ubuntu 到 CentOS,再到版本自由定制
linux·ubuntu·centos·node.js·自动化
拾心214 小时前
【运维进阶】Linux 正则表达式
linux·运维·正则表达式