Search
 
SCRIPT & CODE EXAMPLE
 

SHELL

git interactive rebase

git rebase -i HEAD~2 
#Note: ~2 will take you back 2x commits in history. Adjust that depending on how 
#far back you want to go in commit history
Comment

git rebase interactive

To modify a commit that is farther back in your history, you must move
to more complex tools. Git doesn’t have a modify-history tool, 
but you can use the rebase tool to rebase a series of commits onto the 
HEAD that they were originally based on instead of moving them to 
another one. With the interactive rebase tool, you can then stop 
after each commit you want to modify and change the message, add files, 
or do whatever you wish. You can run rebase interactively by adding 
the -i option to git rebase. You must indicate how far back you want to 
rewrite commits by telling the command which commit to rebase onto.

For example, if you want to change the last three commit messages, 
or any of the commit messages in that group, you supply as an argument 
to git rebase -i the parent of the last commit you want to edit, 
which is HEAD~2^ or HEAD~3. It may be easier to remember the ~3 
because you’re trying to edit the last three commits, but keep in 
mind that you’re actually designating four commits ago, the parent 
of the last commit you want to edit:

$ git rebase -i HEAD~3

Remember again that this is a rebasing command — every commit in the
range HEAD~3..HEAD with a changed message and all of its descendants
will be rewritten. Don’t include any commit you’ve already pushed to
a central server — doing so will confuse other developers by providing
an alternate version of the same change.

Running this command gives you a list of commits in your text editor
that looks something like this:

```
pick f7f3f6d Change my name a bit
pick 310154e Update README formatting and add blame
pick a5f4a0d Add cat-file

```

If, instead of “pick” or “edit”, you specify “squash”, Git applies 
both that change and the change directly before it and makes you 
merge the commit messages together. So, if you want to make a single 
commit from these three commits, you make the script look like this:

```
pick f7f3f6d Change my name a bit
squash 310154e Update README formatting and add blame
squash a5f4a0d Add cat-file

```



When you save and exit the editor, Git applies all three changes and 
then puts you back into the editor to merge the three commit messages:
 
```

# This is a combination of 3 commits.
# The first commit's message is:
Change my name a bit

# This is the 2nd commit message:
Update README formatting and add blame

# This is the 3rd commit message:
Add cat-file

```
When you save that, you have a single commit that introduces the changes
of all three previous commits.
Comment

git interactive rebase

git rebase -i HEAD~4
Comment

PREVIOUS NEXT
Code Example
Shell :: dos dir to text file 
Shell :: dir command list all files and subdirectories 
Shell :: copy file to server 
Shell :: GIT: List all currently configured remotes 
Shell :: how to turn off mac display 
Shell :: create a new file in bash script 
Shell :: how to update git password in windows 
Shell :: npm install different version 
Shell :: arch linux wine 
Shell :: remove branch git 
Shell :: flutter ui upload multiple image 
Shell :: ppm to ppb 
Shell :: shell search history 
Shell :: where are chocolatey packages installed 
Shell :: jq filter by key 
Shell :: IDE for work marckdown file on ubuntu 
Shell :: syslog-ng[31899]: error processing log message: <111 splunk format 
Shell :: sudo -s su root in one line 
Shell :: WSL2 git init 
Shell :: elasticsearch diff between must and should 
Shell :: terminal make directory and enter in the same time 
Shell :: powershell download file from api url 
Shell :: powershell get all unlinked gpo 
Shell :: compile file with library in usr/local cmake 
Shell :: get last line from string powershell 
Shell :: c ide linux online 
Shell :: grep Nth line after pattern 
Shell :: bnmbmbmmbjhgnbhgmv nbhgmvnb 
Shell :: how to check the difference between the staging area and commit 
Shell :: troll someone 
ADD CONTENT
Topic
Content
Source link
Name
5+3 =