paint-brush
如何在 Git 中从远程删除提交经过@timmouskhelichvili
375,802 讀數
375,802 讀數

如何在 Git 中从远程删除提交

经过 Tim Mouskhelichvili
Tim Mouskhelichvili HackerNoon profile picture

Tim Mouskhelichvili

@timmouskhelichvili

I am a Developer from Montreal, Canada 🇨🇦. I specialize...

2 分钟 read2022/05/31
Read on Terminal Reader
Read this story in a terminal
Print this story
Read this story w/o Javascript
Read this story w/o Javascript

太長; 讀書

要从远程删除提交,如果您的提交是从顶部连续的,则可以使用 git reset 命令,否则可以使用交互式变基。在本地删除提交后,使用带强制选项的 git push 命令将这些更改推送到远程。
featured image - 如何在 Git 中从远程删除提交
Tim Mouskhelichvili HackerNoon profile picture
Tim Mouskhelichvili

Tim Mouskhelichvili

@timmouskhelichvili

I am a Developer from Montreal, Canada 🇨🇦. I specialize in React & TypeScript development.

0-item
1-item

STORY’S CREDIBILITY

Guide

Guide

Walkthroughs, tutorials, guides, and tips. This story will teach you how to do something new or how to do something better.

Code License

Code License

The code in this story is for educational purposes. The readers are solely responsible for whatever they build with it.

对于经常使用 Git 的开发人员来说,操纵历史记录是很常见的。事实上,开发人员经常需要从 Git 历史记录中删除提交。幸运的是,Git 提供了许多命令来使此操作成为可能。


让我们开始吧😎。

第 0 步 - 准备

在操作 Git 历史记录之前,请使用git status命令确保您的工作目录没有任何更改。

第 1 步 - 删除本地提交

要从远程服务器删除提交,首先,您需要将它们从本地历史记录中删除。

1.1 对于从顶部连续提交

如果要删除的提交位于提交历史记录的顶部,请使用git reset --hard命令以及HEAD对象和要删除的提交数。


 git reset --hard HEAD~1

此命令将删除最新的提交


 git reset --hard HEAD~3

此命令将删除最新的三个提交


您还可以使用提交的哈希删除最多特定的提交,如下所示:

 git reset --hard <hash>

1.2 对于非连续提交

image

但是,如果您想删除非连续提交,则需要使用交互式变基。


  • [ ]使用git reflog命令查找包含要删除的所有提交的最后提交哈希。
  • [ ]使用git rebase -i <hash>启动交互式变基。
  • [ ]在编辑屏幕中,找到要删除的提交行并将其删除。
  • [ ]保存退出(可能需要解决冲突)
  • []使用git rebase --continue结束交互式变基,或者通过中止变基重新开始。

第 2 步 - 从远程删除提交

要从远程删除提交,您需要使用git push命令将本地更改推送到远程。


 git push origin HEAD --force


由于本地历史记录与远程历史记录不同,因此您需要使用force选项。

最后的想法

正如您所看到的,Git 可以轻松地从远程服务器删除提交。


但是,在使用带有force选项的git push命令时需要小心,因为如果不小心,可能会丢失进度。


image

感谢您的阅读!

L O A D I N G
. . . comments & more!

About Author

Tim Mouskhelichvili HackerNoon profile picture
Tim Mouskhelichvili@timmouskhelichvili
I am a Developer from Montreal, Canada 🇨🇦. I specialize in React & TypeScript development.

標籤

这篇文章刊登在...

Permanent on Arweave
Read on Terminal Reader
Read this story in a terminal
 Terminal
Read this story w/o Javascript
Read this story w/o Javascript
 Lite
X REMOVE AD