Welcome to the Github Community Forum!
This is a little triky, but i think we can get on it…
From now on i will call B the commit that you have create last and A the previous commit, and also consider to start from the master branch.
With a git log you can see the id of the commit , something like this:
commit **cb2fa6226febb3f3b6be53b15bba4c83adeaff9f \<-------- This is the id** Author: User name <firstname.lastname@example.org>
Date: Thu Feb 14 16:04:07 2019 +0100
Now create a branch from A with the git command
git checkout -b <name_of_branch> <commit_id>
In my case i will use this:
git checkout -b test.one **cb2fa6226febb3f3b6be53b15bba4c83adeaff9f**
(You can also use the HEAD^ for the commit id, this refer to the previous commit of the HEAD commit)
Now i have this new branch called test.one and I want to import the file _ test.txt _ for example.
The merge --squash we are going to use is the merge command but without commit:
git merge --squash **master**
This will import all the changes made with the commit B.
Now you can take 2 ways:
Use this branch like a substitute of the previous one (if is not the master branch);
Reset the branch master to A, do changes in the test.one branch than merge.
This works only if the main branch is not the master, if it is go to Way 2 below.
Reset all the files:
git reset **cb2fa6226febb3f3b6be53b15bba4c83adeaff9f**
And do wherever you want like create a new commit with only the test.txt. Do not delete the other branch before you’ve concluded. When you are sure to commit all the changes you want in this branch you can remove the other branch with this command:
git branch -D <the_other_branch>
And if you also have the same refs in the remote you need to use this:
git push origin --delete <the_other_branch>
And you have done.
Do your commits in this new branch. When you have done and you want this changes in the other branch you can checkout in the previous branch, here i will use the master:
git checkout master
Now you need to remove the old commit B and move to the previous one in this example we call that A:
git reset --hard **cb2fa6226febb3f3b6be53b15bba4c83adeaff9f**
Let’s merge the branch testOne:
git merge test.one
Now you need to force push this master into the remote version:
git push --force origin master
(Be carefull to use this command because this update the remote history for you and all of your collaborators)
This is it.
Hope this helps, ask if you have more questions
Mark helpfull posts with Accept as Solution to help other users locate important info. Don’t forget to give Kudos for great contents!