How to delete historical commits in git
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
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.
- 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
(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^
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
Finally, you can use the following command to verify whether you successfully deleted the commit history:
git log
- 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>
(2) Use the following command to enter the copy repository:
cd <repository name>.git
(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
This command is used to delete the historical submissions of the file named
(4) Use the following command to push the changes to the Git repository:
git push --all --force
Finally, you can use the following command to verify whether the commit history is successfully deleted:
git log
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!

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

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



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.

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.

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.

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.

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.

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.

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.

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.
