Home Development Tools git How to delete historical commits in git

How to delete historical commits in git

Apr 26, 2023 am 09:16 AM

In recent years, Git, as a powerful version control tool, has become increasingly popular among development teams. However, when using Git, sometimes bad commits may appear, and these commits may have a negative impact on the project. How to delete these historical commits has become a problem often faced by Git users. This article will detail how to delete historical commits in Git.

1. Git submission history

Git submission history is composed of many submissions. Whenever you make a commit in Git, a new commit is created. Each submission has its own identifier (SHA) and contains information such as the submission's author, date, and description of the submission.

You can view the commit history in Git through the Git command line or Git client tool. For example, using the Git command line you can view the commit history of this project using the following command:

git log
Copy after login
Copy after login
Copy after login
Copy after login

This command will list all commits on the current branch, listed in reverse order. Each commit has its own SHA, committer's name and email, commit date, and commit message.

2. Why delete historical submissions

In the process of collaborative development, there will be many human factors that lead to the occurrence of bad submissions. "Bad Submissions" are Submissions that may contain errors, security vulnerabilities, sensitive information, etc. If these bad commits have been merged into the mainline branch, it may have a negative impact on other parts of the project.

In addition, if you include content that you do not want others to see before submitting the code, such as passwords, API keys and other sensitive information, it may be exposed after submission. At this time, deleting historical submissions is a way to protect user privacy.

3. How to delete historical commits in Git

In Git, there are two ways to delete historical commits: rewriting history and using Git's filtering mechanism.

  1. Rewriting history

Rewriting history is actually achieved by modifying historical submissions. This means making changes and rearrangements to already published commits. The following are the steps to delete Git commit history:

(1) Use the following command to view the commit history:

git log
Copy after login
Copy after login
Copy after login
Copy after login

(2) Find the SHA of the commit you want to delete and record it.

(3) Use the following command to rewrite history. In this command, replace SHA with the SHA of the commit you want to delete:

git rebase -i SHA^
Copy after login

This command will open an editor with a list of all commits since the last commit of the selected commit.

(4) Change the "pick" in front of the commit to be deleted to "drop" or use the pound sign to comment out the line. Save and close the editor.

(5) Run the following command to force overwrite the commit in Git:

git push --force
Copy after login

Finally, you can use the following command to verify whether you successfully deleted the commit history:

git log
Copy after login
Copy after login
Copy after login
Copy after login
  1. Using Git's filtering mechanism

In Git, the filter-branch command can help you delete commit history. This command copies the entire repository and applies the specified filter to each commit. The following are the steps to use Git's filtering mechanism to delete Git commit history:

(1) Use the following command to create a copy repository:

git clone --mirror <Git URL>
Copy after login

(2) Use the following command to enter the copy repository:

cd <repository name>.git
Copy after login

(3) Use the following command to delete historical submissions:

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch <filename>" --prune-empty --tag-name-filter cat -- --all
Copy after login

This command is used to delete the historical submissions of the file named . This command can be changed as needed. Here, --tag-name-filter cat is used to fix tags. Finally, this command will be applied to all branches.

(4) Use the following command to push the changes to the Git repository:

git push --all --force
Copy after login

Finally, you can use the following command to verify whether the commit history is successfully deleted:

git log
Copy after login
Copy after login
Copy after login
Copy after login

four , Summary

You can delete historical commits in Git by rewriting history or using Git's filtering mechanism. However, before deleting commit history, you should think carefully and make sure all team members understand the impact of the change. Additionally, Git repositories should be cleaned regularly before merging changes to reduce storage overhead.

The above is the detailed content of How to delete historical commits 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)

Git vs. GitHub: Version Control and Code Hosting Git vs. GitHub: Version Control and Code Hosting Apr 11, 2025 am 11:33 AM

Git 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.

Is Git the same as GitHub? Is Git the same as GitHub? Apr 08, 2025 am 12:13 AM

Git 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.

Is GitHub difficult to learn? Is GitHub difficult to learn? Apr 02, 2025 pm 02:45 PM

GitHub is not difficult to learn. 1) Master the basic knowledge: GitHub is a Git-based version control system that helps track code changes and collaborative development. 2) Understand core functions: Version control records each submission, supporting local work and remote synchronization. 3) Learn how to use: from creating a repository to push commits, to using branches and pull requests. 4) Solve common problems: such as merge conflicts and forgetting to add files. 5) Optimization practice: Use meaningful submission messages, clean up branches, and manage tasks using the project board. Through practice and community communication, GitHub’s learning curve is not steep.

Should I put Git or GitHub on my resume? Should I put Git or GitHub on my resume? Apr 04, 2025 am 12:04 AM

On your resume, you should choose to write Git or GitHub based on your position requirements and personal experience. 1. If the position requires Git skills, highlight Git. 2. If the position values ​​community participation, show GitHub. 3. Make sure to describe the usage experience and project cases in detail and end with a complete sentence.

Does Microsoft own Git or GitHub? Does Microsoft own Git or GitHub? Apr 05, 2025 am 12:20 AM

Microsoft does not own Git, but owns GitHub. 1.Git is a distributed version control system created by Linus Torvaz in 2005. 2. GitHub is an online code hosting platform based on Git. It was founded in 2008 and acquired by Microsoft in 2018.

Should I start with Git or GitHub? Should I start with Git or GitHub? Apr 06, 2025 am 12:09 AM

Starting from Git is more suitable for a deep understanding of version control principles, and starting from GitHub is more suitable for focusing on collaboration and code hosting. 1.Git is a distributed version control system that helps manage code version history. 2. GitHub is an online platform based on Git, providing code hosting and collaboration capabilities.

How to use GitHub for HTML? How to use GitHub for HTML? Apr 07, 2025 am 12:13 AM

The 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.

What is Git in simple words? What is Git in simple words? Apr 09, 2025 am 12:12 AM

Git 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.

See all articles