JIYIK CN >

Current Location:Home > Learning > OPERATING SYSTEM > Git >

Rebase to a specific commit in Git

Author:JIYIK Last Updated:2025/03/27 Views:

This article discusses the process of rebasing to a specific commit in Git. We will use a few scenarios to illustrate how this can be achieved.

We'll use git rebase --ontothe rebase command to rebase a branch to a specific commit. Let's jump right in.


Rebase to a specific commit in Git

When we need to rebase one branch onto another and specify a commit, we use the --onto flag.

Basic syntax:

$ git rebase –onto <new-parent> <old-parent> <head-of-new-parent>

Let's look at an example scenario.

This is the basic workflow we will use:

Git Rebase to a previous commit - Basic workflow

Rebase the new feature to a specific commit in main

In our first scenario, let's assume that we want to use a single commit in main, rather than rebase the entire branch. This will require us to pay attention to the SHA-1 of the commit that is in play.

We can use git log <branch-name>to get the hash of the commit.

Git Rebase to a specific commit - Workflow

In our case, we want to move the commits in our new feature branch to the master branch at commit 846e2fa (the second to last). We would run the following:

$ git rebase –onto 846e2fa bd9172c

The above command will produce the following result:

Git Rebase to a specific commit - Output

Since we want to move the entire new feature, we don’t need the third argument in our command. If you omit the third argument, Git defaults to moving the entire branch.

Rebase new-feature to a specific commit in main and remove the first commit in new-feature

Let's say our e2ff2bc is a dependency and we want to move our branch to main at commit 846e2fa, which is the same dependency we have. In plain English, we want to rebase new-feature onto main at 846e2fa and omit the first commit in new-feature.

Git Rebase to a specific commit and remove the first commit - Workflow

Here’s how we do it:

$ git rebase –onto 846e2fa e2ff2bc

The above command will produce the following result:

Git Rebase to a specific commit and remove the first commit - Output

The git rebase -onto command takes the parent commit as a reference. In simple terms, we should reference the commit before the commit we want to save.

Rebase new-feature to a specific commit in main and remove the last commit in new-feature

Suppose we want to move new-feature to 846e2fa but omit commit d7dbeb from new-feature. How would we go about this?

Git Rebase to a specific commit and remove the last commit - Workflow

This is where the third parameter comes in. We will run the following command:

$ git rebase –onto 846e2fa bd9172c 730f163

This will result in:

Git Rebase to a specific commit and remove the last commit - Output

The third argument simply points to the HEAD of the new parent commit; in our case, we have 730f163. This should remove that commit and all the commits after it.

In short, Git allows us to rebase a branch to a specific commit. git rebase -ontoThe command accepts three parameters when rebasing.

Always remember that the third parameter determines the new parent commit.

For reprinting, please send an email to 1244347461@qq.com for approval. After obtaining the author's consent, kindly include the source as a link.

Article URL:

Related Articles

Adding files in Git

Publish Date:2025/03/27 Views:74 Category:Git

This article will discuss different ways to add files to our repository on Git. In Git, use git add the command to add all files We can git add add all the files without exception using the command as shown below. git add -A -A The -p param

Different ways to add files to staging with Git

Publish Date:2025/03/27 Views:199 Category:Git

While the command git add is probably the most commonly used command for adding files to your stash, other flags may come in handy depending on the situation. This article takes a deep dive into git add the flags you can use with the comman

Git add folder

Publish Date:2025/03/27 Views:100 Category:Git

git add Used to add specific folders and files. This tutorial will handle it in a modern way git add folder . git add Add all or specific folders and files to staging in Git using Use the following syntax to add files: git add file Use the

Recursively add files and folders in Git

Publish Date:2025/03/27 Views:136 Category:Git

Sometimes, we come across a situation where we have to adjust some files, folders, and subfolders that already exist in Git. A part of a nested folder system has to be added remotely to Git. This article will discuss how to use commands to

Undoing rm in Git

Publish Date:2025/03/27 Views:79 Category:Git

In Git, the term rm is git remove an alias for the command. So it is used to remove a single file or a bunch of files from the repository. git rm The main functionality of in Git is to remove tracked files using Git index. However, git rm i

Revert a file to a previous commit in Git

Publish Date:2025/03/27 Views:170 Category:Git

Git is a version control system. We use it to track changes made to files in a project directory. In a collaborative development environment, many team members often work on the same files and make changes to them. We often face a situation

Find deleted files in the commit history of a Git project

Publish Date:2025/03/27 Views:67 Category:Git

This article discusses finding deleted files in the commit history of a project. This is handy when you want to recover a file you deleted in a project. Without further ado, let’s jump right in. Steps to find and restore deleted files in

Tracking command history in Git

Publish Date:2025/03/27 Views:141 Category:Git

Git is one of those version control systems that keeps a record of the changes made by its developers. Through these records, we can track various earlier commits, which teammates made what changes at what time, understand the bugs that wer

Using Git Rebase from the Command Line

Publish Date:2025/03/27 Views:130 Category:Git

This article will discuss using the git rebase command effectively . The git rebase command allows us to change a range of commits and modify the commit history in our repository. We can edit, reorder, or squash commits using the git rebase

Scan to Read All Tech Tutorials

Social Media
  • https://www.github.com/onmpw
  • qq:1244347461

Recommended

Tags

Scan the Code
Easier Access Tutorial