Home Development Tools git How to modify history in git

How to modify history in git

Jan 14, 2022 pm 02:19 PM
git

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.

How to modify history in git

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#表示用最后一次提交的提交信息来做为提交信息,不过会调出编辑器界面
Copy after login

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 . For example, you can use git rebase -i HEAD~3 to modify this submission, the last submission, and the previous submission three times in total. submit.

How to modify history in git

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

How to modify history in git

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 -- 'Command' , different filter will provide different input and output to the command. For example, --msg-filter means modifying the submission information, the original submission information is read from the standard input, and the new submission information is output to the standard output; --tree-filter means modifying the file list, etc. Etc. Finally, there will be a scope for rewriting. For example, git filter-branch --env-filter 'GIT_AUTHOR_EMAIL=john@example.com export GIT_AUTHOR_EMAIL' HEAD can be used to rewrite the mailbox. It is recommended to print it out before calling the command Try one branch and then perform the operation on the branch you want to modify.

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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to update code in git How to update code in git Apr 17, 2025 pm 04:45 PM

Steps to update git code: Check out code: git clone https://github.com/username/repo.git Get the latest changes: git fetch merge changes: git merge origin/master push changes (optional): git push origin master

How to download git projects to local How to download git projects to local Apr 17, 2025 pm 04:36 PM

To download projects locally via Git, follow these steps: Install Git. Navigate to the project directory. cloning the remote repository using the following command: git clone https://github.com/username/repository-name.git

How to use git commit How to use git commit Apr 17, 2025 pm 03:57 PM

Git Commit is a command that records file changes to a Git repository to save a snapshot of the current state of the project. How to use it is as follows: Add changes to the temporary storage area Write a concise and informative submission message to save and exit the submission message to complete the submission optionally: Add a signature for the submission Use git log to view the submission content

What to do if the git download is not active What to do if the git download is not active Apr 17, 2025 pm 04:54 PM

Resolve: When Git download speed is slow, you can take the following steps: Check the network connection and try to switch the connection method. Optimize Git configuration: Increase the POST buffer size (git config --global http.postBuffer 524288000), and reduce the low-speed limit (git config --global http.lowSpeedLimit 1000). Use a Git proxy (such as git-proxy or git-lfs-proxy). Try using a different Git client (such as Sourcetree or Github Desktop). Check for fire protection

How to merge code in git How to merge code in git Apr 17, 2025 pm 04:39 PM

Git code merge process: Pull the latest changes to avoid conflicts. Switch to the branch you want to merge. Initiate a merge, specifying the branch to merge. Resolve merge conflicts (if any). Staging and commit merge, providing commit message.

How to update local code in git How to update local code in git Apr 17, 2025 pm 04:48 PM

How to update local Git code? Use git fetch to pull the latest changes from the remote repository. Merge remote changes to the local branch using git merge origin/<remote branch name>. Resolve conflicts arising from mergers. Use git commit -m "Merge branch <Remote branch name>" to submit merge changes and apply updates.

How to solve the efficient search problem in PHP projects? Typesense helps you achieve it! How to solve the efficient search problem in PHP projects? Typesense helps you achieve it! Apr 17, 2025 pm 08:15 PM

When developing an e-commerce website, I encountered a difficult problem: How to achieve efficient search functions in large amounts of product data? Traditional database searches are inefficient and have poor user experience. After some research, I discovered the search engine Typesense and solved this problem through its official PHP client typesense/typesense-php, which greatly improved the search performance.

How to delete a repository by git How to delete a repository by git Apr 17, 2025 pm 04:03 PM

To delete a Git repository, follow these steps: Confirm the repository you want to delete. Local deletion of repository: Use the rm -rf command to delete its folder. Remotely delete a warehouse: Navigate to the warehouse settings, find the "Delete Warehouse" option, and confirm the operation.

See all articles