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

Git常用指令整理【新手入门级】【by慕羽】

   Git 是一个分布式版本控制系统,主要用于跟踪和管理源代码的更改。它允许多名开发者协作,同时提供了强大的功能来管理项目的历史记录和不同版本。本文主要记录和整理,个人理解的Git相关的一些指令和用法

在这里插入图片描述

文章目录

    • 一、git安装 & 创建git仓库
    • 二、理解git 文件的三种不同状态和工作模式
      • 1. **Git 文件的三种状态**
        • 1.1 **已修改(Modified)**
        • 1.2 **已暂存(Staged)**
        • 1.3 **已提交(Committed)**
      • 2. **Git 的工作模式**
        • 2.1 **工作区(Working Directory)**
        • 2.2 **暂存区(Staging Area)**
        • 2.3 **本地仓库(Repository)**
      • 3. **Git 的工作流程**
    • 三、git基本指令
      • 1. **git init**
      • 2. **git clone**
      • 3. **git add**
      • 4. **git commit**
      • 5. **git status**
      • 6. **git log**
      • 7. **git diff**
        • 7.1 **git diff 的基本用法(查看工作区 和 暂存区之间的差异)**
        • 7.2 **查看暂存区与本地仓库的差异**
        • 7. 3 **比较不同提交之间的差异**
        • 7.4 **查看特定文件的差异(工作区与暂存区)**
        • 7. 5 **比较暂存区与本地仓库中的特定文件的差异**
        • 7. 6 **比较分支之间的差异**
        • 7.7 **忽略空白字符的差异**
        • 7.8 **生成统计信息**
        • 7.9 **查看提交的差异**
        • 7.10 **查看与远程仓库之间的差异**
      • 9. **git ls-files**
      • 10. **git rm**
      • 11. **git reset**
    • 四、git分支管理指令
      • 1. **git checkout**
        • 1. 1 **切换到本地指定分支**
        • 1. 2 **新建本地分支并切换到该分支**
      • 2. **git branch**
      • 3. **git merge**
    • 五、SSH密钥生成及远程仓库配置
      • 1. **生成新的 SSH 密钥**
      • 2 .**将 SSH 公钥添加到远程仓库平台**
      • 3. **测试 SSH 连接**
      • 4. **然后就可以在 克隆时使用 SSH URL了**
      • 5. **(可选)设置全局用户名和邮箱**
    • 六、git远程仓库相关指令
      • 1. **git pull**
        • 1. 1 **pull基础用法**
        • 1. 2 **关于pull冲突**
        • 1. 3 **从远程恢复文件**
        • 方式 1:重置本地分支的状态,使其与远程仓库的状态完全一致。这会将所有本地删除的文件恢复,回到远程仓库的状态。
        • 方式 2:仅恢复特定的文件
      • 2. **git push**
        • 2. 1 **push基础用法**
        • 2. 2 **关于push冲突**
      • 3. **git remote**
      • 具体来说:
        • 3. 1 **git remote -v**
        • 3.2 **添加远程仓库**
        • 4. **确认分支名称是否正确**
      • 4. **git fetch**

一、git安装 & 创建git仓库

可以使用以下指令安装git

sudo apt update
sudo apt install git

可以使用git init在当前目录下创建一个空仓库,也可以使用git clone 从远程仓库clone一个项目

git init
git clone 远程仓库地址

创建仓库时不想放在当前目录下,也可以指定路径

git init 路径
git clone 远程仓库地址  路径

二、理解git 文件的三种不同状态和工作模式

在 Git 中,文件在版本控制的过程中可以处于三种不同的状态:已修改(modified)已暂存(staged)已提交(committed)。这些状态帮助开发者跟踪文件从修改到保存的过程。我们来详细看看这三种状态以及它们在 Git 工作模式中的作用。

1. Git 文件的三种状态

1.1 已修改(Modified)

定义: 文件已经被修改,但是这些修改还没有被提交到 Git 的版本控制中。

解释: 当你对某个文件进行了更改(比如修改了代码或文档,或者删除、新建了文件等),此时文件处于 “已修改” 状态,但这些改动还没有被添加到暂存区。

实例:

# 修改了文件,但还没有添加到暂存区
vim index.html  # 修改文件
git status

此时 git status 会显示 index.html 已被修改,但尚未添加到暂存区。

1.2 已暂存(Staged)

定义: 文件的修改已经添加到暂存区,准备在下一次提交时包含这些修改。

解释: 当你希望把某个文件的改动纳入下一次提交时,使用 git add 将文件添加到暂存区。暂存区可以理解为一个中间状态,记录哪些修改会被包含在下一次提交中。

实例:

git add index.html
git status

此时 index.html 的状态会显示为 Changes to be committed,表示文件的修改已经被暂存,准备提交。

1.3 已提交(Committed)

定义: 文件的修改已经被保存到 Git 本地仓库中,成为项目的永久历史的一部分。

解释: 当你对所有想要提交的文件进行了暂存,并使用 git commit 提交它们后,这些改动会保存到 Git 本地仓库中,文件就处于 “已提交” 状态。

实例:

git commit -m "Updated index.html"
git status

此时所有暂存的文件已被提交,git status 会显示 “nothing to commit, working tree clean”。


2. Git 的工作模式

Git 的工作模式主要通过三个区域来实现,即 工作区(Working Directory)暂存区(Staging Area 或 Index)本地仓库(Repository)。这三个区域对应着文件的三种状态,并构成了 Git 的工作流。

2.1 工作区(Working Directory)

定义: 工作区是你当前看到的项目文件所在的目录,也是你进行代码编辑的地方。

解释: 当你克隆一个 Git 仓库或初始化一个新仓库时,工作区就是文件的实际存储和修改的地方。工作区中的文件可以是未修改的,也可以是已修改的。

实例:

git clone https://github.com/user/repo.git

repo 仓库会被克隆到你的本地系统,此时你所看到的文件就是工作区的内容。

2.2 暂存区(Staging Area)

定义: 暂存区是一个虚拟区域,保存着你打算在下次提交时记录的更改。

解释: 当你使用 git add 时,修改过的文件就会进入暂存区。暂存区可以理解为一个准备提交的列表,Git 将会根据暂存区的内容生成新的提交。

实例:

git add index.html

此时,index.html 的更改就被保存到暂存区中,等待提交。

2.3 本地仓库(Repository)

定义: 本地仓库是 Git 真正保存提交历史的地方,它包含了所有提交的记录。

解释: 当你执行 git commit 时,暂存区的内容会被保存到本地仓库中,成为项目历史的一部分。本地仓库通过 .git 目录来存储这些信息。

实例:

git commit -m "Updated index.html"

这会把暂存区中的文件提交到本地仓库,成为版本历史的一部分。


3. Git 的工作流程

Git 的工作流程大致如下:

  1. 修改文件: 当你在工作区修改文件时,文件会处于 “已修改” 状态。你可以用 git status 查看哪些文件发生了变化。

  2. 暂存文件: 使用 git add 命令将已修改的文件添加到暂存区。此时文件处于 “已暂存” 状态,准备提交。

  3. 提交文件: 使用 git commit 命令将暂存区的文件提交到本地仓库,文件进入 “已提交” 状态,成为项目的一部分。

  4. 推送到远程仓库(可选): 如果项目与远程仓库(如 GitHub)同步,还可以使用 git push 将本地的提交推送到远程仓库中。

在这里插入图片描述



三、git基本指令

1. git init

功能: 初始化一个新的 Git 仓库。

用法:

git init

解释: 在当前目录中初始化一个新的 Git 仓库。这会创建一个 .git 目录,其中包含所有版本控制的信息。

实例:

mkdir my_project
cd my_project
git init

my_project 文件夹中初始化一个新的 Git 仓库。


2. git clone

功能: 克隆一个现有的 Git 仓库。

用法:

git clone <repository_url>

解释: 将远程仓库的内容克隆到本地。远程仓库可以是 GitHub、GitLab 等平台上的项目。

实例:

git clone https://github.com/user/repo.git

上述指令将 https://github.com/user/repo.git 仓库克隆到本地。

如果想要使用 Git 克隆远程仓库的某个特定分支,可以通过 git clone 命令的 -b(或 --branch)选项来实现。这个命令允许你指定克隆远程仓库时仅获取某个特定分支,而不是默认的 mainmaster 分支。

git clone -b <branch_name> <repository_url>
  • -b <branch_name>: 指定要克隆的分支名称。
  • <repository_url>: 远程仓库的地址(如 GitHub、GitLab 或其他 Git 服务器的仓库 URL)。

假设你要从 GitHub 仓库 https://github.com/user/repo.git 克隆分支 feature-branch,可以执行以下命令:

git clone -b feature-branch https://github.com/user/repo.git

3. git add

功能: 将文件添加到暂存区(staging area)。

将制定文件添加到暂存区:

git add 文件名

当前目录中的所有更改添加到暂存区::

git add .

实例:

git add index.html
git add .

以上两条指令分别表示将 index.html 文件、当前目录中的所有更改 添加到暂存区。


4. git commit

功能: 提交暂存区的内容到本地仓库。

用法:

git commit -m "相关说明"

解释: 将暂存区的更改提交到本地仓库。-m 选项允许直接提供提交说明,未提供时将打开编辑器强制输入说明。

实例:

git commit -m "Initial commit"

提交带有说明 Initial commit 的更改。

由本文第二部分的介绍可知,对工作空间内的文件修改后,需要先使用git add 指令将修改保存到暂存区,然后再使用git commit指令,将修改提交到本地仓库,也可以直接使用以下指令合并以上操作,即自动将修改保存到暂存区,并提交到本地仓库

git commit -am "相关说明"

5. git status

功能: 显示工作区和暂存区的状态。

用法:

git status

解释: 显示哪些文件被修改但未添加到暂存区,哪些文件在暂存区等待提交,以及哪些文件未被 Git 跟踪。


6. git log

功能: 显示项目的提交历史。

用法:

git log
git log --oneline
git log --graph --oneline

解释: 列出所有提交的记录。可以添加选项简化输出,--oneline 显示每次提交的一行简要信息,--graph 以图表形式显示分支和合并历史。

实例:

git log --oneline --graph

查看简化的提交历史和项目的分支结构。


7. git diff

git diff 是 Git 中用于比较文件改动的一个非常强大的命令。它可以显示工作区、暂存区或已经提交的文件之间的差异,帮助开发者了解当前的更改细节。

7.1 git diff 的基本用法(查看工作区 和 暂存区之间的差异)
git diff

解释: 这个命令显示工作区中已修改但尚未暂存的文件与最新提交(HEAD)版本之间的差异。简而言之,git diff 展示的是 工作区暂存区 之间的差异。

实例:
假设你修改了 index.html 文件,但还没有使用 git add 将其添加到暂存区:

git diff

输出会显示 index.html 文件的具体改动,比如哪些行被修改、添加或删除。


7.2 查看暂存区与本地仓库的差异
git diff --staged

git diff --cached

解释: 显示暂存区与最新提交版本(HEAD)的差异。这里的最新提交版本是本地仓库中当前分支的最新提交

实例:

git add index.html
git diff --staged

git add 之后运行这个命令,显示 index.html 文件的暂存区和提交之间的差异。


7. 3 比较不同提交之间的差异
git diff <commit1> <commit2>

解释: 比较两个提交之间的差异,显示它们的改动情况。

实例:

git diff abc1234 def5678

这个命令比较提交 abc1234def5678 之间的所有差异,输出这些提交间文件的更改情况。你可以通过提交哈希值或分支名称来指定不同的提交。


7.4 查看特定文件的差异(工作区与暂存区)
git diff <file_name>

解释: 显示工作区中指定文件的差异,适用于查看某个文件的具体修改内容。

实例:

git diff index.html

显示 index.html 文件的更改情况。


7. 5 比较暂存区与本地仓库中的特定文件的差异
git diff --staged <file_name>

实例:

git add index.html
git diff --staged index.html

显示 index.html 文件暂存区和最新提交之间的差异。


7. 6 比较分支之间的差异
git diff <branch1> <branch2>

解释: 比较两个分支之间的差异,显示这两个分支所做的不同更改。

实例:

git diff main feature-branch

显示 main 分支和 feature-branch 分支之间的改动。


7.7 忽略空白字符的差异

有时,代码格式的改变(如空白字符的变化)可能会造成不必要的差异显示。使用 -w 选项可以忽略空白字符的变化。

git diff -w

实例:

git diff -w index.html

忽略 index.html 文件中的空白字符差异,仅显示实际内容的变化。


7.8 生成统计信息
git diff --stat

解释: 生成一份简洁的文件改动统计信息,而不显示具体的改动内容。

实例:

git diff --stat

输出结果会显示每个文件的改动情况,包括新增和删除的行数。例如:

 index.html | 4 +++-style.css  | 3 +++2 files changed, 7 insertions(+), 1 deletion(-)

7.9 查看提交的差异
git diff <commit>

解释: 查看当前工作区和某个特定提交之间的差异。

实例:

git diff HEAD

显示当前工作区和最后一次提交(HEAD)之间的差异。


7.10 查看与远程仓库之间的差异
git diff <branch> <remote>/<branch>

解释: 查看本地分支与远程分支之间的差异。

实例:

git diff main origin/main

显示本地 main 分支和远程仓库 originmain 分支之间的差异,帮助你了解本地与远程的不同步情况。


9. git ls-files

git ls-files 是 Git 中一个非常有用的命令,用来列出 Git 仓库中的文件。它可以帮助你查看哪些文件已经被 Git 跟踪,或者根据特定的条件过滤文件。

git ls-files

解释: 该命令显示当前 Git 仓库中所有已经被跟踪的文件。这些文件是指那些已经通过 git add 添加到 Git 的版本控制系统并且不在 .gitignore 列表中的文件。


10. git rm

git rm 是 Git 中用于删除文件的命令,它不仅会在文件系统中删除指定的文件,还会将删除操作记录在 Git 的暂存区,以便在下一次提交时将该删除记录保存到版本控制系统中。

git rm <file>

解释: 该命令会从工作区和暂存区中删除指定的文件。删除后,文件将不再受到 Git 的版本控制,并且在下一次 git commit 时删除记录将被提交。

实例:

git rm index.html
git commit -m "Remove index.html"

这将删除 index.html 文件,并提交删除操作到仓库。


11. git reset

版本回退到上一个版本:

git reset --hard HEAD^ 是一个 Git 命令,常用于将当前分支的最新一次提交回退到它的前一个提交,同时丢弃所有工作区和暂存区中的更改。它会彻底清理当前分支的状态,回到指定的提交,并且未提交的所有改动将不可恢复。

git reset --hard HEAD^

版本往回退m个版本:

其中m是回退的版本个数

git reset --hard HEAD~m

回退或前进到指定版本:

git reset --hard 版本标识

可以使用git reflog查看所有改动的标识


在这里插入图片描述

四、git分支管理指令

1. git checkout

1. 1 切换到本地指定分支

功能: 切换分支或恢复文件。

用法:

git checkout 分支名
git checkout <commit_hash>
git checkout -- <file_name>

解释: 切换到指定分支,或者将文件恢复到指定的提交版本。-- 用于恢复工作区的文件到最新的暂存状态。

实例:

git checkout feature-branch
git checkout 3a6b8c1
git checkout -- index.html

以上三条示例分别表示切换到 feature-branch 分支,回滚到提交 3a6b8c1,恢复 index.html 文件。

1. 2 新建本地分支并切换到该分支
git checkout  -b  新的分支名

2. git branch

功能: 查看、创建或删除分支。

用法:

git branch
git branch <new_branch>
git branch -d <branch_name>

解释: git branch 列出所有本地分支,并且标*号的是当前分支,git branch <new_branch> 创建新分支,-d 删除分支。

实例:

git branch feature
git branch -d feature

创建名为 feature 的分支,之后删除该分支。

以下指令可以查看远程仓库的所有分支

git branch -r

3. git merge

功能: 合并分支。

用法:

git merge <branch_name>

解释: 将指定的分支合并到当前分支。

实例:

git checkout main
git merge feature-branch

feature-branch 合并到 main 分支。

关于合并冲突:

合并的时候,最大的难点就是冲突了,合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改,如果我们在两个分支中同时修改了同一个文件,这时再合并,就可能会产生冲突,冲突并不可怕,可怕的是要怎样去解决,一般是根据实际的需求来选择保留那个,或者兼顾等



五、SSH密钥生成及远程仓库配置

1. 生成新的 SSH 密钥

可以使用以下命令生成一个新的 SSH 密钥对。

命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

:

ssh-keygen -t rsa -C "your_email@example.com"

解释:

  • -t rsa: 指定生成的密钥类型为 RSA。
  • -b 4096: 指定密钥长度为 4096 位。
  • -C "your_email@example.com": 添加一个注释,一般使用你的邮箱作为标识。

执行后:
系统会提示你输入密钥保存的路径和文件名,默认保存在 ~/.ssh/id_rsa。也会提示是否为密钥设置一个密码,按需选择。

在这里插入图片描述


2 .将 SSH 公钥添加到远程仓库平台

SSH 公钥存储在 ~/.ssh/id_rsa.pub 中。下一步是将该公钥复制并添加到远程仓库平台(如 GitHub、GitLab)。

可以使用以下命令输出SSH公钥的内容进行复制,也可以按照上图生成密钥时,提示的输出路径,找到并打开生成的id_rsa.pub文件,复制里面的内容:

cat ~/.ssh/id_rsa.pub

复制完成后,进入 GitHub 或 GitLab 的设置页面,找到 SSH and GPG keys(GitHub)或 SSH Keys(GitLab),并将公钥粘贴进去。这里以GIthub远程仓库为例,在Github设置的SSH keys项中,添加复制的内容,如下图所示

  • GitHub: GitHub SSH Key 设置
  • GitLab: GitLab SSH Key 设置

在这里插入图片描述


3. 测试 SSH 连接

配置完成后,可以使用以下命令测试与 GitHub 或 GitLab 的 SSH 连接是否成功:

命令:

ssh -T git@github.com

:

ssh -T git@gitlab.com

解释: 尝试通过 SSH 连接到 GitHub 或 GitLab。如果连接成功,会看到类似 Hi username! You've successfully authenticated... 的提示信息。

注:@ 后面的是远程仓库的地址

在这里插入图片描述


4. 然后就可以在 克隆时使用 SSH URL了

为了确保 Git 使用 SSH 进行连接,在克隆远程仓库时推荐使用 SSH URL 格式:

命令(示例):

git@github.com:JZX-MY/gittest.git

解释: 使用 SSH URL 克隆仓库,而不是 HTTPS URL(https:// 格式)。这种方式不会要求每次操作时输入用户名和密码。


5. (可选)设置全局用户名和邮箱

虽然这不是 SSH 相关的命令,但为了使 Git 的提交记录保持一致,建议设置全局的用户名和邮箱。

命令:

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"


六、git远程仓库相关指令

1. git pull

1. 1 pull基础用法

功能: 从远程仓库拉取最新更改并合并。

用法:

git pull 远程仓库在本地的名字  远程仓库的分支

解释: 从指定的远程仓库和分支拉取最新更改并自动合并到当前分支。注意,这里的远程仓库在本地的名字可以使用git remote -v查看,如果没有配置,需要使用git remote add指令进行配置,详情见本小节的3,git remote指令的介绍

实例:

git pull origin main

从远程仓库 originmain 分支拉取最新更改。

注意: git pull 相当于git fetch 与git merge的组合,在git merge时 可能需要给定合并说明,如果不想要执行git pull后强制进入编辑器 编辑合并说明,可以在后面加上–no-edit

git pull 远程仓库在本地的名字  远程仓库的分支 --no-edit

注意: nano编辑器可按Ctrl+X键退出编辑模式

1. 2 关于pull冲突

如果从远程仓库拉取后,在本地修改了文件A,且远程仓库中的另一个文件B被修改,此时,使用git pull指令,可以把远程仓库中文件B的修改更新到本地仓库,且本地仓库中修改的文件A的内容并不会被覆盖,此时使用git status指令,会提示本地仓库的分支领先于远程的分支,即该情况并不会产生pull冲突

在这里插入图片描述

如果从远程仓库拉取后,在本地修改了文件A,且远程仓库中文件A的相同行处被也其他人修改,此时,使用git pull指令,就会产生pull冲突。

在这里插入图片描述

此时git 无法自动完成合并。我们需要手动解决这些冲突(编辑本地的冲突文件,视具体情况处理),然后使用git add和git commit 提交合并的结果。

在这里插入图片描述

1. 3 从远程恢复文件

当我们使用git pull从远程仓库拉取了一个项目到本地仓库,然后在本地仓库通过键盘上的delete键删除了一个文件,并提交到了本地仓库,此时,我再次使用git pull从远程仓库拉取该项目到本地,会显示当前已经是最新的了,并不能通过这种方式恢复被我们删除的文件

在这里插入图片描述

原因分析:

当我们最初使用 git pull 从远程仓库拉取了项目,并将它同步到本地。这意味着此时你的本地分支与远程分支是同步的。然后,我们在本地删除了一个文件,并使用 git commit 提交了这次删除操作。这会将文件删除记录提交到本地仓库,但还没有推送到远程仓库。当我们再次运行 git pull origin master 时,Git 会检查远程仓库的状态,发现远程仓库的 master 分支没有新的提交,因此显示“已经是最新的”。(尽管本地仓库已经与远程仓库不同了)

此时,我们可以使用以下方法进行恢复

方式 1:重置本地分支的状态,使其与远程仓库的状态完全一致。这会将所有本地删除的文件恢复,回到远程仓库的状态。
git reset --hard 远程仓库的本地名/远程仓库的分支名

解释:

  • --hard:将本地分支、暂存区和工作区都重置到远程仓库的最新状态,这意味着所有未提交的更改都会被丢弃,完全同步到远程分支的状态。
  • 如果你已经提交了删除操作,这个命令会恢复被删除的文件,因为它会重置到远程仓库最新的提交。

注意: 使用 --hard 选项会丢失所有本地的未提交更改,务必谨慎。

方式 2:仅恢复特定的文件

如果你只想恢复某个特定文件而不是所有文件,可以通过以下命令从远程仓库恢复该文件。

git checkout 远程仓库的本地名/远程仓库的分支名 -- <file_path>

解释:

  • git checkout 远程仓库的本地名/远程仓库的分支名 -- <file_path>:从远程仓库的 远程仓库的分支名 分支恢复指定的文件,并将其放到本地工作区。
  • <file_path>:你想要恢复的文件的路径。

实例:
如果你删除了 config.json 文件,想从远程恢复这个文件:

git checkout origin/master -- config.json

这个命令会将远程仓库中最新版本的 config.json 恢复到你的本地工作区。

恢复文件后,你需要重新提交这些文件,使得删除的文件在本地被恢复,并且可以推送到远程仓库。

git add <file_path>
git commit -m "Restore deleted file"

2. git push

2. 1 push基础用法

功能: 将本地提交推送到远程仓库。

用法:

git push 远程仓库在本地的名字  远程仓库的分支

解释: 将当前分支的提交推送到远程仓库中的指定分支。

实例:

git push origin main
2. 2 关于push冲突

与pull冲突类似,如果在本地仓库中对文件A进行了修改,另一个人对远程仓库中的文件A也进行了修改,此时使用git push将本地仓库推送到远程就会产生冲突,更新到远程被拒绝

在这里插入图片描述

此时,我们需要手动解决这些冲突,需要先使用git pull 拉取远程分支的最新内容,然后视具体情况,编辑本地的冲突文件来解决冲突,然后使用git add和git commit 提交合并的结果。最后,再使用git push提交到远程

在这里插入图片描述


3. git remote

功能: 管理远程仓库。

用法:

git remote -v
git remote add <name> <url>
git remote rm <name>

解释: git remote -v 显示所有远程仓库的详细信息,add 添加新的远程仓库,rm 删除远程仓库。

实例:

git remote add origin https://github.com/user/repo.git
git remote rm origin

添加或删除名为 origin 的远程仓库。

具体来说:

3. 1 git remote -v

该命令将列出你的远程仓库列表:

git remote -v

这个命令会列出所有配置的远程仓库及其对应的 URL。如果没有你想要的远程仓库,说明你还没有配置它。如下图中例子所示,远程仓库git@github.com:JZX-MY/gittest.git在本地的名字为origin

在这里插入图片描述

3.2 添加远程仓库

如果发现远程仓库没有被配置,你可以使用以下命令添加远程仓库:

git remote add 设定远程仓库在本地的名字  远程仓库地址

在这里插入图片描述

4. 确认分支名称是否正确

确保你要拉取的分支名 newb 存在。如果该分支名有误,你可以使用以下命令查看所有远程分支:

git branch -r

4. git fetch

功能: 从远程仓库获取最新更新,但不自动合并。

用法:

git fetch <remote>

解释: 从远程仓库获取最新的更改,但不会合并到当前分支,允许开发者手动查看和处理这些更改。

实例:

git fetch origin

从远程仓库 origin 获取最新的更新。



在这里插入图片描述

相关文章:

Git常用指令整理【新手入门级】【by慕羽】

Git 是一个分布式版本控制系统&#xff0c;主要用于跟踪和管理源代码的更改。它允许多名开发者协作&#xff0c;同时提供了强大的功能来管理项目的历史记录和不同版本。本文主要记录和整理&#xff0c;个人理解的Git相关的一些指令和用法 文章目录 一、git安装 & 创建git仓…...

记某学校小程序漏洞挖掘

前言&#xff1a; 遇到一个学校小程序的站点&#xff0c;只在前端登录口做了校验&#xff0c;后端没有任何校验&#xff0c;奇葩弱口令离谱进去&#xff0c;站点里面越权泄露敏感信息&#xff0c;接管账号等漏洞&#xff01;&#xff01;&#xff01; 渗透思路 1.绕过前端 …...

腾讯百度阿里华为常见算法面试题TOP100(3):链表、栈、特殊技巧

之前总结过字节跳动TOP50算法面试题: 字节跳动常见算法面试题top50整理_沉迷单车的追风少年-CSDN博客_字节算法面试题 链表 160.相交链表...

Apache CVE-2021-41773 漏洞复现

1.打开环境 docker pull blueteamsteve/cve-2021-41773:no-cgid docker run -d -p 8080:80 97308de4753d 2.访问靶场 3.使用poc curl http://47.121.191.208:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd 4.工具验证...

vue-入门速通

setup是最早的生命周期&#xff0c;在vue2里边的data域可以使用this调用setup里面的数据&#xff0c;但是在setup里边不能使用thisvue项目的可执行文件是index&#xff0c;另外运行前端需要npm run vue的三个模块内需要三个不同的结构&#xff0c;里边放置js代码&#xff0c;注…...

【AI大模型】通义大模型API接口实现

目录 一、基础环境安装 &#xff08;一&#xff09;OpenAI Python SDK安装 &#xff08;二&#xff09;DashScope SDK安装 二、OPENAI接口实现 &#xff08;一&#xff09;文本输入 &#xff08;二&#xff09;流式输出 &#xff08;三&#xff09;图像输入 &#xff0…...

CVPR最牛图像评价算法!

本文所涉及所有资源均在 传知代码平台可获取。 目录 概述 一、论文思路 1.多任务学习框架&#xff1a; 2.视觉-语言对应关系&#xff1a; 3.动态损失权重&#xff1a; 4.模型优化和评估&#xff1a; 二、模型介绍 三、详细实现方法 1.图像编码器和语言编码器&#xff08;Image…...

Spring源码-从源码层面讲解传播特性

传播特性:service&#xff1a;REQUIRED&#xff0c;dao:REQUIRED 两个都是required使用的是同一个事务&#xff0c;正常情况&#xff0c;在service提交commit <tx:advice id"myAdvice" transaction-manager"transactionManager"><tx:attributes&…...

Rust调用tree-sitter解析C语言

文章目录 一、Rust 调用 tree-sitter 解析 C 语言代码1. 设置 Rust 项目2. 添加 tree-sitter 依赖3. 编写 Rust 代码4. 运行程序5. 编译出错 二、解决步骤1. 添加 tree-sitter 构建依赖2. 添加 tree-sitter-c 源代码3. 修改 build.rs 以编译 tree-sitter-c 库4. 修改 Cargo.tom…...

奇瑞汽车—经纬恒润 供应链技术共创交流日 成功举办

2024年9月12日&#xff0c;奇瑞汽车—经纬恒润技术交流日在安徽省芜湖市奇瑞总部成功举办。此次盛会标志着经纬恒润与奇瑞汽车再次携手&#xff0c;深入探索汽车智能化新技术的前沿趋势&#xff0c;共同开启面向未来的价值服务与产品新篇章。 面对全球汽车智能化浪潮与产业变革…...

vue3 TagInput 实现

效果 要实现类似于下面这种效果 大致原理 其实是很简单的,我们可以利用 element-plus 组件库里的 el-tag 组件来实现 这里我们可以将其抽离成一个公共的组件,那么现在有一个问题就是通讯问题 这里我们可以利用父子组件之间的通讯,利用 v-model 来实现,父组件传值,子组…...

mysql中的json查询

首先来构造数据 查询department里面name等于研发部的数据 查询语句跟普通的sql语句差不多&#xff0c;也就是字段名要用到path表达式 select * from user u where u.department->$.name 研发部 模糊查询 select * from user u where u.department->$.name like %研发%…...

Etcd权限认证管理

1 查看是否开启权限认证 ctl auth status 2 开启权限认证 ctl auth enable。开启后每一条命令都要加上用户 --userroot:root(root默认最高权限) 3 创建其他用户 ctl user add user1 --user用户名:密码 4 创建角色 ctl role add testR --user 5 为角色添加权限 ctl role g…...

图文组合商标部分驳回后优化后初审通过!

这几天以前有个企业的商标初审下来了&#xff0c;以前是加了图形个别部分没有通过初审&#xff0c;后面是把图形去掉重新用文字申请下来初审。 图形与文字同时申请&#xff0c;会分别审查有一个元素过不了&#xff0c;整体就会过不了&#xff0c;所以平常就会建议分开申请注册商…...

【最新华为OD机试E卷-支持在线评测】爱吃蟠桃的孙悟空(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…...

BUUCTF [SCTF2019]电单车详解两种方法(python实现绝对原创)

使用audacity打开&#xff0c;发现是一段PT2242 信号 PT2242信号 有长有短&#xff0c;短的为0&#xff0c;长的为1化出来 这应该是截获电动车钥匙发射出的锁车信号 0 01110100101010100110 0010 0前四位为同步码0 。。。中间这20位为01110100101010100110为地址码0010为功…...

Apache James配置连接达梦数据库

项目场景&#xff1a; Apache James配置连接达梦数据库&#xff0c;其他配置中不存在的数据库也可参考此方案。 配置步骤 1、把需要的jar包导入到James 把DmJdbcDriver18.jar复制到下面lib目录下 james-2.3.2\lib 2、 修改连接配置 james-2.3.2\apps\james\SAR-INF\confi…...

Java实现栈

一、栈Stack 1.1 概念 一种特殊的线性表&#xff0c;只允许在固定的一段进行插入和删除元素操作。进行数据的插入和删除操作的一段称为栈顶&#xff0c;另一端称为栈低。栈中的元素遵循后进先出 LIFO(Last In First Out)的原则。 进栈 出栈 举例&#xff1a;在word中&#xf…...

数据结构—栈

栈 概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#xff1a;栈…...

服务设计原则介绍

在Java或任何软件开发中&#xff0c;设计服务时遵循一些核心原则是非常重要的&#xff0c;这些原则不仅有助于构建高质量、可维护的软件系统&#xff0c;还能提高系统的可扩展性和可重用性。以下是一些关键的服务设计原则&#xff1a; 单一职责原则&#xff08;SingleResponsib…...

【Qualcomm】高通SNPE框架的使用 | 原始模型转换为量化的DLC文件 | 在Android的DSP端运行模型

目录 ① 激活snpe环境 ② 设置环境变量 ③ 模型转换 ④ run 首先&#xff0c;默认SNPE工具已经下载并且Setup相关工作均已完成。同时&#xff0c;拥有原始模型文件&#xff0c;本文使用的模型文件为SNPE 框架示例的inception_v3_2016_08_28_frozen.pb文件。image_file_list…...

爬虫的流程

爬虫的流程 获取网页提取信息保存数据自动化程序能爬怎样的数据 获取网页 获取网页就是获取网页的源代码&#xff0c;源代码里包含了网页的部分有用信息&#xff0c;所以只要把源代码获取下来&#xff0c;就可以从中提取想要的信息浏览器访问网页的本质&#xff1a;浏览器向服…...

Git之如何删除Untracked文件(六十八)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…...

k8s集群自动化管理

项目地址 https://github.com/TimeBye/kubeadm-ha准备安装包 # 离线安装环境 curl -LO https://oss.choerodon.com.cn/kubeadm-ha/kubeadm-ha-base-amd64.tar # 集群运行所需的镜像 curl -LO https://oss.choerodon.com.cn/kubeadm-ha/kubernetes-1.30.2-images-amd64.tgz # …...

yum库 docker的小白安装教程(附部分问题及其解决方案)

yum库 首先我们安装yum 首先在控制台执行下列语句 首先切换到root用户&#xff0c;假如已经是了就不用打下面的语句 su root #使用国内的镜像&#xff0c;不执行直接安装yum是国外的&#xff0c;那个有问题 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.al…...

python如何实现日期加减

首先通过import datetime&#xff0c;导入日期处理库。 然后把日期转化成datetime标准格式&#xff0c;使用datetime.datetime.strptime()方法将字符串格式的时间转化为标准格式。 其中"%Y/%m/%d %H:%M:%S"为time字符串的时间格式&#xff1a;Y为年&#xff0c;m为月…...

springboot实战学习笔记(4)(Spring Validation参数校验框架、全局异常处理器)

接着上篇博客学习。上篇博客是已经基本完成用户模块的注册接口的开发。springboot实战学习笔记&#xff08;3&#xff09;(Lombok插件、postman测试工具、MD5加密算法、post请求、接口文档、注解、如何在IDEA中设置层级显示包结构、显示接口中的方法)-CSDN博客本篇博客主要是关…...

网络七层协议

网络七层协议&#xff0c;也称为OSI&#xff08;Open Systems Interconnection&#xff09;参考模型&#xff0c;是由国际标准化组织&#xff08;ISO&#xff09;提出的一种网络通信的协议分层模型。该模型将网络通信过程划分为七个层次&#xff0c;从下到上依次为物理层、数据…...

从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之一:生产环境与目标服务器详情

从 Oracle 集群到单节点环境&#xff08;详细记录一次数据迁移过程&#xff09;之一&#xff1a;生产环境与目标服务器详情 目录 从 Oracle 集群到单节点环境&#xff08;详细记录一次数据迁移过程&#xff09;之一&#xff1a;生产环境与目标服务器详情一、操作系统环境二、Or…...

【软件测试】详解测试中常用的几种测试方法

目录 一、集成测试二、 系统测试三、验收测试四、回归测试 总结 一、集成测试 术语 集成测试是继组件测试之后的又一个层次。集成测试假定交给这个层次的测试对象已经经过了组件测试&#xff0c;并且任何组件内部的缺陷都已经尽可能地被纠正。 集成 开发人员、测试人员和专…...