Method: 1. Use the "git commit --amend" command to modify one history record; 2. Use the "git rebase -i specify submission number" command to modify multiple history records; 3. Use "git filter- The range modified by the branch --filer command" command rewrites the history.

The operating environment of this article: Windows 10 system, Git version 2.30.0, Dell G3 computer.
How to modify the history of git
Junior player git amend
If you are just submitting Later I found that I was handicapped, so I used git commit --amend to modify the previous commit. After this command is executed, it will remove the previous commit from the current branch, restore the workspace to the state where it was last prepared for submission (while mixing the changes after the last commit), and then display a vim interface for You go and modify the last commit information. After saving in vim, all current modifications will be submitted with new submission information.
This command can only modify the last commit. One command is equivalent to executing the following series of actions:
$ORIG_HEAD=`git show`#保存当前的这次提交的 commit 号
$git reset --soft HEAD^#回到最后一次提交准备提交前的状态
$...#做一些操作和修改
$git commit -c $ORIG_HEAD#表示用最后一次提交的提交信息来做为提交信息,不过会调出编辑器界面Intermediate player git rebase
Previous The git commit --amend can only modify the last commit, but when we are on a whim and handicapped all the way, this command cannot save us. At this time, we have to use the killer tool of git rebase -i to help We revise those past events that are unbearable to look back on.
Actually, git rebase -i is not a command specifically used to modify historical records, but a command that allows us to perform rebase operations interactively (that is, one by one), but we can use This command is used to modify the commit history.
The method of using this command is git rebase -i

As shown in the picture, if I submit the changes three times and enter git rebase -i HEAD~3, the following interface will appear:

This is a vim editor interface. Let us edit this script. The commands that can be used are the six commands in the comments below. After exiting the page where you are currently editing it, git will perform corresponding operations on the submissions one by one according to this script (starting from the earliest submission).
If you just want to modify the submission information, change all picks to r, and then save with:wq. Then git will let you modify it one by one starting from the earliest submission information.
Among the remaining commands, e will jump out of the vim editor when modifying the corresponding submission. At this time, the HEAD pointer points to this submission. At this time, you can use git commit --amend to make various modifications to this submission. , and then execute git rebase --continue to continue the next operation; s will merge this submission and its parent submission into one submission when modifying the corresponding submission; f is similar to s but will ignore the current submission. Information, directly use the information submitted by the parent; x requires entering the command after x and then executing it when HEAD points to this submission. These commands can also be used to rearrange submissions and split submissions.
Ultimate killer git filter-branch
Suppose we submitted N times, and suddenly found that the email addresses we submitted were all wrong (╯°□° )╯︵ ┻━┻, if you use the previously mentioned command at this time, you will probably be exhausted before the changes are completed. At this time, we can use git filter-branch to rewrite the branch, which can batch each branch. Submit and perform our preset operations.
The basic usage format used by the git filter-branch command is git filter-branch --
Recommended study: "Git Tutorial"
The above is the detailed content of How to modify history in git. For more information, please follow other related articles on the PHP Chinese website!
GitHub: A Hub for Open Source and Software DevelopmentApr 15, 2025 am 12:10 AMGitHub is a Git-based version control system hosting platform that provides version control, collaborative development and community communication functions. Using GitHub can improve development efficiency and code quality.
Git and GitHub: What's the Relationship?Apr 14, 2025 am 12:10 AMGit and GitHub are different tools: Git is software for version control, and GitHub is an online platform based on Git. 1.Git allows you to track file changes and collaborative development. 2. GitHub provides code hosting and collaboration tools to enhance team development efficiency.
GitHub: The Platform for Developers and ProjectsApr 13, 2025 am 12:01 AMThe core features of GitHub include version control, branch management, code review, issue tracking and project management. 1. Version control and branch management are based on Git, allowing tracking of code changes and experimental development. 2. Code review is implemented through PullRequest to improve code quality and team collaboration. 3. Issues tracking and project management are carried out through Issues and the project management board to improve project transparency and traceability.
GitHub in Action: Examples and Use CasesApr 12, 2025 am 12:16 AMGitHub is a powerful tool to improve the efficiency and quality of software development. 1) Version control: manage code changes through Git. 2) PullRequests: Conduct code review and improve code quality. 3) Issues: Track bugs and project progress. 4) GitHubActions: Automate the construction, testing and deployment process.
Git vs. GitHub: Version Control and Code HostingApr 11, 2025 am 11:33 AMGit is a version control system, and GitHub is a Git-based code hosting platform. Git is used to manage code versions and supports local operations; GitHub provides online collaboration tools such as Issue tracking and PullRequest.
What is Git in simple words?Apr 09, 2025 am 12:12 AMGit is an open source distributed version control system that helps developers track file changes, work together and manage code versions. Its core functions include: 1) record code modifications, 2) fallback to previous versions, 3) collaborative development, and 4) create and manage branches for parallel development.
Is Git the same as GitHub?Apr 08, 2025 am 12:13 AMGit and GitHub are not the same thing. Git is a version control system, and GitHub is a Git-based code hosting platform. Git is used to manage code versions, and GitHub provides an online collaboration environment.
How to use GitHub for HTML?Apr 07, 2025 am 12:13 AMThe reason for using GitHub to manage HTML projects is that it provides a platform for version control, collaborative development and presentation of works. The specific steps include: 1. Create and initialize the Git repository, 2. Add and submit HTML files, 3. Push to GitHub, 4. Use GitHubPages to deploy web pages, 5. Use GitHubActions to automate building and deployment. In addition, GitHub also supports code review, Issue and PullRequest features to help optimize and collaborate on HTML projects.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

Atom editor mac version download
The most popular open source editor

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

Zend Studio 13.0.1
Powerful PHP integrated development environment

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software






