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 需要特别小心,因为它可能会打乱其他人的工作。

相关推荐
Winston Wood2 小时前
一文了解git TAG
git·版本控制
喵喵先森3 小时前
Git 的基本概念和使用方式
git·源代码管理
xianwu5434 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio6 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。7 小时前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode
stewie69 小时前
在IDEA中使用Git
java·git
晓理紫17 小时前
使用git lfs向huggingface提交较大的数据或者权重
git
我不是程序猿儿19 小时前
【GIT】sourceTree的“当前分支“,“合并分支“与“检出分支的区别
git
_OLi_1 天前
IDEA中新建与切换Git分支
java·spring boot·git
PyAIGCMaster1 天前
ubuntu下安装 git 及部署cosyvoice(1)
git