Skip to main content

Fixes for Common Git Mistakes



Spelled last commit message wrong


git commit --amend
This will open up your editor and allow you to make a change to that last commit message


Spelling mistake on branch name


We rename this branch in a similar way to how we rename a file with the mv command: by moving it to a new location with the correct name.
git branch -m feature-brunch feature-branch

If you have already pushed this branch, there are a couple of extra steps required. We need to delete the old branch from the remote and push up the new one:
git push origin --delete feature-brunch
git push origin feature-branch

Accidentally committed all changes to the master branch

git branch feature-branch
git reset HEAD~ --hard
git checkout feature-branch
This creates a new branch, then rolls back the master branch to where it was before you made changes, before finally checking out your new branch with all your previous changes intact.

Forgot to add a file to that last commit


Add that missed file then run that amend command.
git add missed-file.txt
git commit --amend

Added a wrong file in the repo

If all you did was stage the file and you haven’t committed it yet, it’s as simple as resetting that staged file:
git reset /assets/img/misty-and-pepper.jpg
If you have gone as far as committing that change, no need to worry. You just need to run an extra step before:
git reset --soft HEAD~1
git reset /assets/img/misty-and-pepper.jpg
rm /assets/img/misty-and-pepper.jpg
git commit
This will undo the commit, remove the image, then add a new commit in its place.

Go back to any point in the past


The following command prints the logs with commit messages and index

git reflog

Go back to any point in the history using following command, replace 
{index} with index from reflog  
git reset HEAD@{index}

Comments

Popular posts from this blog

Agile Overview

Agile Manifesto: Many processes like Scrum, Kanban, Lean, Extreme Programming(XP), Crystal Clear, Agile Unified Process, Dynamic Systems Development Method, Feature Driven Development, Agile Modeling  what they were doing is same so they came up with Agile Manifesto which is set of 4 Values and 12 principals. The 4 Values are: Individuals and Interactions Over Process and tools: As process and tools avoid direct interactions the agile manifesto values Interactions. Working Software Over  Documentation: Giving value to Woking software than the document which describes the software. Customer collaboration Over Contract: We should not stick to contract, as technology changes. Responding to change over plan We should unfollow plans and de prioritise tasks which take longer time  The 12 Principles of Agile Manifesto: Underlying Agile Concepts: Short Feedback Loops Just in Time Requirements and Design Software does not need blue prints like before b...

User defined settings iOS

With User defined settings  we can set values specific to build configuration. Creating User Defined Settings Select Target > Build Settings Click Plus icon, present beside the search bar Using User Defined Settings when we need to access the values set in User defined build settings we can do it in two ways  From info.plist $(NEW_SETTING) From Code let value = Bundle.main.infoDictionary?["NEW_SETTING"] as! String

Cloning repositories using SSH

Using the Secure Shell (SSH) protocol, you can connect and authenticate to remote servers and services. With SSH keys, you can connect to Version Control Account (BitBucket/GitHub..) accounts without supplying your username or password at each visit.  We need to generate SSH key pair, Add the private key to ssh agent and public key to Version control account. 1. Generating SSH key pair Open  Terminal  and paste the text below, substituting in your email address or some unique key like employee Id. ssh-keygen -t rsa -b 4096 -C " your_email@example.com " This creates a new ssh key, using the provided email as a label. This generates public/private rsa key pair. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location. 2.   Adding your SSH key to the ssh-agent Start the ssh-agent in the background. eval "$(ssh-agent -s)" If you're using macOS Sierra 10.12.2 or l...