【VSCode中的Git操作】常用Git命令 & VSCode中如何使用GitLens快速进行(无命令行)版本控制

目录

一、常用的 Git 命令及其作用

git log  查看版本历史

git revert 回滚提交

git reset 撤销提交

git branch 创建新分支

git merge 合并分支

git cherry-pick 提取特定提交

git status 查看当前状态

二、通过 GitLens 插件实现这些 Git 操作

Git 是一个非常重要的工具,它提供了强大的命令行,可以帮助开发者管理代码的版本,但尴尬的是,有时候并不能清晰熟练地记住所有的命令,于是,在本文中,我将介绍一些常用的 Git 命令,并展示如何通过 GitLens 插件在 VSCode 中实现这些 Git 操作,提升开发效率。

一、常用的 Git 命令及其作用

  • git log  查看版本历史

1. 基本的 git log 命令

git log

执行 git log 后,会显示 Git 仓库的提交历史,每个提交包含以下信息:

  • 提交的唯一标识符(提交哈希值)
  • 提交作者
  • 提交日期
  • 提交消息(描述改动的简短说明)
  • 可能会显示父提交(如果是合并提交)

输出格式通常如下所示:

commit e1a2b9f23a7d4f9f5d8b5ff4b1a5f6c9bb8d8b7f
Author: John Doe <john.doe@example.com>
Date:   Mon Sep 20 18:30:00 2021 -0700

    提交1

commit d4c3f2a56d7c8d3d08b71b3b8c2a56a8a0c8b9f
Author: John Doe <john.doe@example.com>
Date:   Mon Sep 19 14:22:11 2021 -0700

    提交2

2.git log 可选值及参数

--oneline:显示每个提交的简短版本(哈希值和提交消息),以单行方式呈现提交历史。

  • --graph:以图形化方式显示提交历史,展示分支和合并的结构。

  • --all:显示所有分支的提交历史,而不仅仅是当前分支。

  • --author=<name>:显示某个特定作者的提交记录。

  • --since=<date> 和 --until=<date>:限制显示提交的时间范围,例如 --since="2021-01-01" 显示从 2021 年 1 月 1 日以来的提交。

  • --patch:显示每个提交所做的具体改动(文件差异)。

  • --stat:显示每次提交所影响的文件以及修改的行数统计。

  • --grep=<pattern>:通过提交消息匹配正则表达式,筛选出符合条件的提交。

  • -n <number> 或 --max-count=<number>:限制显示的提交数量,例如 -n 5 只显示最新的 5 次提交。

  • --reverse:按照提交时间的逆序显示提交历史,从最旧的提交开始。

这里只详细介绍一下我认为最常用的 --oneline

--oneline 选项使 git log 的输出更加简洁,每个提交只显示提交哈希值(前 7 个字符)和提交消息。

e1a2b9f 提交1
d4c3f2a 提交2
a8c2e1d 提交3
主要输出:
  • 提交哈希(Commit Hash):每个提交对应一个唯一的哈希值,--oneline 会显示该哈希值的前 7 个字符。

  • 提交消息(Commit Message):每个提交时附带的简短说明或消息。

使用场景:
  • 简洁查看提交历史:当你只关心提交的摘要信息而不是详细内容时,git log --oneline 会比普通的 git log 输出更加紧凑和易于阅读。

  • 查看提交 ID:当你需要获取某个特定提交的哈希值时,--oneline 格式的输出可以帮助你快速定位。

配合其他选项使用:你可以将 --oneline 与其他选项一起使用,比如 --graph 来查看分支和合并历史,或与 --all 配合查看所有分支的提交。


  • git revert “回滚”提交

作用:撤销某个已提交的改动,并生成一个新的提交来反向修改该提交。

常见场景:回滚一个错误的提交,但不改变 Git 提交历史

git revert <commit-id>

    比如要回滚提交 ID 为 abc1234 的提交,就可以使用以下命令
    (这里的ID就可以使用上文提到的git log --oneline查到):

    git revert abc1234

  • git reset 撤销提交

作用:撤销提交,可以选择撤销提交、暂存区的内容,或者完全重置工作区。

常见场景:在本地开发时需要撤销最近的提交。

  • git reset --soft <commit-id>:仅重置提交。
  • git reset --mixed <commit-id>:重置提交和暂存区。
补充

如果错误提交或合并了分支,想将代码回到某条提交时的状态,可以按如下操作

1. 重置到指定提交

比如,想将代码回退到2239eb1提交时的状态,执行以下命令:

git reset --hard 2239eb1

这会将当前分支的 HEAD 和工作区的内容重置为该提交的状态。

2.如果已推送到远程

如果你已经将提交推送到远程仓库,执行重置操作后,工作区会出现如下内容:

这时可以执行如下命令:

同步远程分支,执行强制推送

git push origin <branch-name> --force
  • git branch 创建新分支

作用:创建新分支,用于独立的功能开发或 bug 修复。

git branch <branch-name>

    示例: 创建一个名为 feature-login 的新分支:

    git branch feature-login

    • git merge 合并分支

    作用:将其他分支的修改合并到当前分支,通常在开发完成后,使用 merge 将功能分支合并到主分支。

    git merge <branch-name>
    
        示例: 将 feature-login 分支合并到当前分支:
    
        git merge feature-login

      • git cherry-pick 提取特定提交

      作用:将其他分支中的某个特定提交,挑选并应用到当前分支。

      git cherry-pick <commit-id>
      
          示例:将 feature-1 分支的提交 abc1234 应用到当前分支:
      
          git cherry-pick abc1234

        • git status 查看当前状态

        作用:查看当前分支的状态,检查未提交的更改以及当前分支的最新提交信息。


        二、通过 GitLens 插件实现这些 Git 操作

        GitLens 是一个功能强大的 VSCode 插件,它扩展了 VSCode 内置的 Git 功能。GitLens 提供了丰富的界面和功能,帮助开发者更好地管理版本控制任务,而无需频繁切换到命令行。接下来,我将逐一介绍如何使用 GitLens 插件实现上述 Git 操作。可选则安装下面这个插件:


        • git revert “回滚”提交

        1.选择 Commits

        2.找到想要回滚的提交记录,右键选择 “Revert Commit”

        3.选择想要的操作点击即可

        区别:

                Revert --no-edit:自动回滚并使用默认的回滚消息,操作更快。

                Revert & Edit --edit:回滚后允许编辑提交消息,适合需要修改回滚消息的场景。

        4.最终效果: GitLens 会生成一个新的提交,撤销选定提交的修改,并将该提交添加到当前分支。


        • git reset 撤销提交

        1.同样找到 Commits,找到想要回滚的提交记录,右键选择 “Checkout Commit”

        2.点击后会出现如图对话框

        区别:

                Checkout to Commit:进入 detached HEAD 状态,仅查看历史提交,适用于临时查看某个提交的状态。

                Create & Switch to New Branch from Commit:基于历史提交创建并切换到新分支,适合需要在旧版本上继续开发的场景。

                Create Worktree for New Branch from Commit:为新分支创建一个独立的工作树,不影响当前工作区,适合需要同时处理多个开发任务的场景。


        • git branch 创建新分支


        • git merge 合并分支

        1.选择 Branches

        2.选择想要合并到当前分支的分支,右键选择 “Merge Branch into Current Branch”

        *此操作会将选中分支的修改合并到当前所在分支,如果没有冲突,GitLens 会自动完成合并;如果有冲突,你需要手动解决冲突并提交合并结果。


        • cherry-pick 提取特定提交

        1.在 Branches Remotes 里操作都可以

        2.找到你想要 cherry-pick 的提交,右键点击该提交,选择 “Cherry Pick Commit”,GitLens 会将该提交应用到当前分支

        • apply changes 将单个文件的修改提交到工作区

        将当前分支的某个文件或改动应用到工作区(也就是当前文件的内容会被修改成其他分支中对应文件的内容)

        执行 Apply Changes 的作用

        1. 合并特定文件的改动

          如果选择了某个分支的文件,执行 Apply Changes 后,会将该分支中对应文件的改动应用到你当前工作分支的同一文件中。仅影响选定的文件,而不是整个分支。并且这只是本地操作,不会立即影响远程仓库。
        2. 不影响其他文件

          该操作不会对其他文件或当前分支的整体状态产生影响,只针对单独选中的文件。
        3. 可能触发冲突

          如果当前分支的文件与目标分支的文件内容有较大差异,执行后可能会触发冲突,需要手动解决。

        希望本文能够帮助你实现更高效的版本控制管理!

        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

        当前余额3.43前往充值 >
        需支付:10.00
        成就一亿技术人!
        领取后你会自动成为博主和红包主的粉丝 规则
        hope_wisdom
        发出的红包
        实付
        使用余额支付
        点击重新获取
        扫码支付
        钱包余额 0

        抵扣说明:

        1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
        2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

        余额充值