Automatically Update the Local Branch with the Remote Version When Switching Branches in Git

RMAG news

When you switch to your main branch during development, do you ever forget to perform a git pull?

When you checkout to a particular branch, you can utilize a feature called “Git Hooks” to have a git pull executed automatically.

This article explains how to configure it.

Setup procedure

Go to the .git/hooks directory of the repository of your choice.
Create a file named post-checkout in the .git/hooks directory.
In this post-checkout, write the following code:

#! /bin/sh

# Get the current branch name
branch=$(git rev-parse –abbrev-ref HEAD)

# Do a git pull when you move to the `master` branch
if [ $branch = “master” ]; then
git pull origin $branch
fi

After editing post-checkout, go to the root of the desired repository in a terminal.
Execute the following command in the terminal to give the post-checkout file the permission to execute the script.

chmod +x .git/hooks/post-checkout

This completes the configuration. The post-checkout file above will automatically perform a git pull when you git checkout (or git switch) from any branch to the master branch.

If you want to set up “automatic local modernization on branch move” for multiple branches

#!/bin/sh

# Get the current branch name
branch=$(git rev-parse –abbrev-ref HEAD)

# Handle the ‘master’ and ‘develop’ branches
if [ $branch = “master” ] || [ $branch = “develop” ]; then
# Calling exec < /dev/tty assigns standard input to the keyboard
exec < /dev/tty
read -n 1 -p “Do you want to pull the ‘$branch‘ branch? (y/n): “ answer
echo n

if [ $answer = “y” ]; then
# Break line
git pull origin $branch
else
echo “Skipping ‘git pull’ for the ‘$branch‘ branch.”
fi
# Handle other branches
else
echo “Skipping ‘git pull’ for the ‘$branch‘ branch.”
fi

Referenced articles

https://qiita.com/t-sakamoto-0601/items/9254cd4a4a785b1b29e6

Please follow and like us:
Pin Share