git 常用命令

部分内容来自AI

git revert

git revert 是一个命令,它用于撤销指定提交的更改。它会创建一个新的提交,执行与指定提交相反的更改。

使用方法如下:

bash 复制代码
git revert <commit-hash>

这里的 <commit-hash> 是你想要撤销的提交的hash值。可以使用 git log 命令来查找对应的 <commit-hash>

例如,如果你想要撤销最近的提交,你可以使用以下命令(HEAD是指向你当前所在的最后一个提交的指针):

bash 复制代码
git revert HEAD

如果你想要撤销倒数第二个提交,你可以使用:

bash 复制代码
git revert HEAD~1

git revert 命令会打开一个文本编辑器,让你输入新提交的提交信息。如果你不想改变自动生成的提交信息,你只需直接退出编辑器即可。

需要注意的是,git revert 并不会删除指定的提交,而是创建一个新的提交。如果你想要完全删除一个提交,你需要使用 git resetgit rebase

git reset

git reset是一个命令,它用于将当前工作区和staging area(暂存区)重置到一个指定的commit。有三种模式:--soft--mixed--hard

  • git reset --soft <commit>: 此命令会将HEAD指针移动到指定的commit,但不会改变staging area和工作区。换句话说,它保留了工作区和staging area的状态。

  • git reset --mixed <commit>: 这是默认的模式。此模式下,命令会将HEAD指针和staging area移动到指定的commit,但不改变工作区。这样可以重新添加和提交文件。

  • git reset --hard <commit>: 此命令将完全重置您的工作区、staging area和HEAD指针到指定的commit。这将删除所有指定commit之后的更改。这是一个具有破坏性的命令,应谨慎使用。

请替换 <commit> 为要重置到的commit的hash。例如,如果你想要恢复到前两个提交的状态,你可以使用 git reset HEAD~2

如果你想要完全舍弃所有uncommit的更改(包括工作区和staging area的更改),你可以使用 git reset --hard HEAD

git rebase

git rebase 是一种变基操作,它用于将一系列提交应用到另一个基(base)上。其可以用于整理提交历史,使其更加线性,也可以用于将分支上的修改更新到最新的主分支上。

基本的 git rebase 命令如下:

git rebase <base>

这里的 <base> 可以是任何一种提交的引用(比如分支名,标签名,或者是 commit hash)。

使用这个命令,Git 将首先找到当前分支与指定基之间的公共祖先(common ancestor),然后获取当前分支自那个时间点以来所做的修改,并将这些修改在 <base> 指向的提交上重新应用一次。

在可能的情况下,Git 会进行自动的合并,但如果同一部分代码在两个地方都被修改过,就可能发生冲突。这种情况下,就需要手动解决冲突。

另外, git rebase 有一种交互模式(interactive mode),可以通过添加 -i 参数来开启。在交互模式下,你可以改变提交的顺序,改写提交信息,将多个提交合并为一个,等等。

需要注意的是,git rebase 是一个改写历史的操作,你可能需要force push来将变更更新到远程仓库。也因此,在公开的分支上使用 rebase 需要特别小心,因为它可能会打乱其他人的工作。

相关推荐
qq_464357011 小时前
git中忽略文件.gitignore文件的用法
git
程序员阿鹏3 小时前
Git的安装和配置(idea中配置Git)
java·开发语言·ide·git·intellij-idea·idea
belldeep15 小时前
如何阅读、学习 Git 核心源代码 ?
git·学习·源代码
我不是秃头sheep16 小时前
Git安装教程及常用命令
git
sduwcgg1 天前
git经验
git
麻雀无能为力1 天前
git的使用
git
算法歌者1 天前
Visual Studio 项目 .gitignore 文件指南
git·visual studio
江边垂钓者1 天前
git cherry-pick和git stash命令详解
git
Lw老王要学习1 天前
Linux架构篇、第五章git2.49.0部署与使用
linux·运维·git·云计算·it
爱学习的张哥1 天前
专栏项目框架介绍
git·fpga开发·udp·ddr·gt收发器