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

相关推荐
呆萌的代Ma26 分钟前
Git不强行推送,撤销最近几次的提交
git
透明的玻璃杯3 小时前
git应用
git
炸炸鱼.4 小时前
Git+Jenkins实战(一):从零搭建自动化发布与回滚系统(附完整代码)
git·jenkins
言6667 小时前
要忽略前端依赖包node_modules的文件在目录下 git暂存区消失
git
胡小禾8 小时前
Git Worktree
git
程序员小羊!8 小时前
18 GIt
git
怣疯knight8 小时前
Git 本地分支关联远程分支 常用命令汇总
git
ANNENBERG9 小时前
git分支开发管理
git
坤坤藤椒牛肉面9 小时前
GIT的使用
git
w3296362719 小时前
使用 OpenCode 在 Windows 上加速安装 Playwright 的完整指南
windows·git