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></git>
(2) Use the following command to enter the copy repository:
cd <repository>.git</repository>
(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</filename>
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!

For different scenarios, the method to undo Git commits: Undo the most recent commit: git reset --soft HEAD~1 Undo all commits: git reset --hard (Note that this operation is irreversible) Undo specific commits: git reset --hard <commit-hash> Undo the pushed commit: Create a new branch locally Rewrite the commit Force push

In Git, the method to view the code repository address is: use the command line: git remote -v Use the graphical interface: view the Source URL field in the Repository Settings in GitHub Desktop. Code repository addresses can be used to clone, push, and pull code.

How to view Git configuration information Use the git config command: List all configured settings (Method 1). View specific configuration items: Specify options and configuration keys (Method 2). Use the git var command: View Git internal variables (Method 3). Git configuration information type: global, user, local, override the configuration in this order.

In order to securely connect to a remote Git server, an SSH key containing both public and private keys needs to be generated. The steps to generate an SSH key are as follows: Open the terminal and enter the command ssh-keygen -t rsa -b 4096. Select the key saving location. Enter a password phrase to protect the private key. Copy the public key to the remote server. Save the private key properly because it is the credentials for accessing the account.

Git conflict occurs when multiple developers modify the same file at the same time. The resolution steps are: determine the conflict location (git status), view the conflict details (git diff) and decide how to resolve the conflict: Merge changes (<> symbols) Select changes (git reset) manually modify and edit files to resolve conflicts and submit merge results (git add, git commit)

Resolve Git version conflicts: 1. Identify the conflicting files; 2. View the conflict; 3. Manually merge changes; 4. Mark the conflict resolved; 5. Submit the merge.

Forced push is an operation that forces local changes to a remote repository. The steps include: 1. Check for conflicts; 2. Use the -f flag to ignore conflicts; 3. Submit a forced push; 4. If there is a conflict, manually resolve the conflict and push again. Forced push should be used with caution as it may overwrite changes from others.

Git restores the version by following the steps: 1. View the commit history and find the hash value to restore; 2. Create a new branch to avoid overwriting the current work; 3. Use git reset to restore to the specified commit; 4. Submit restore to record to the Git history; 5. Switch back to the main branch (optional).


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

Zend Studio 13.0.1
Powerful PHP integrated development environment

SublimeText3 English version
Recommended: Win version, supports code prompts!

Dreamweaver CS6
Visual web development tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

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