How to -- with git


Categorised in: Web Development

Last updated:

I constantly find myself Googling similar questions about git on the command line even though I’ve been using it for years.

This post will be a write-up of some common questions along with their answers when I next search for them. I’ll also have a look at what everyone else seems to be searching for and drop some of the answers to those questions in here too.

99% of the time I use the command line version of git (mainly out of habit) so these answers will be specific to that.

How to revert the last git commit on a git repository

The first thing you need to do on this one is figure out the hash of the commit you want to revert.

You can do this in GitHub or from the command line we can see the recent commits by using

git log

and you’ll see something like this.

You can see the hash in the yellow there after the word commit. The commits here are in descending order.

To revert that commit we need run the revert command and get the changes committed and pushed the repo.

git revert [your-commit-hash] 
git commit -m "Revert the last commit" 
git push origin main

Behind the scenes, this creates a new commit that will undo the changes in that commit

How to change master to main in git

A few years back there was a movement by tech companies to remove divisive language from a lot of their software. GitHub was one of those companies and the word master was removed in favour of main.

For existing repositories, there was a need to change that manually.

Create a new branch named main and check it out of git.

git branch main 
git checkout main

We then need to merge the old master branch into the new main branch and then update what should be the default branch

git merge master 
git remote set-head origin main

Now we can delete the old master branch

git branch -d master

Finally we need to push the changes up with

git push origin main --set-upstream

If you have any hosting or CI tools that were pointing to or monitoring changes on that specific branch, you’ll need to update those too.

Finally, don’t forget to tell any other contributors on your repo. They’ll need to fetch and pull all of the new repo changes.

How to untrack files in git

There are two ways you can do this.

Firstly you can add the file location or file pattern to your .gitignore file

# ignore a specific file 

# ignore all text files 

If you want to completely remove the file from the git index you need to run a few commands.

git rm --cached folder/sub-folder/filename.txt 
git commit -m "Removing filename.txt" 
git push origin [your-branch-name]

This will still keep the file within your local file though.

You can either move this to another folder or delete this if it is not needed.

How to create a folder in a git repository

For this, I’m assuming that you want to commit an empty folder in git. Git doesn't seem to allow you to add empty folders into repositories.

The way to get around this is to create a hidden file within the folder called .gitkeep , notice there is a period at the start.

You can either do that from within your development environment or in the command line by changing the directory to the folder you want to keep and running

touch .gitkeep

Then it's a case of committing those changes to the repo.

Want to know anything more? Drop a question or comment below.