VOOZH about

URL: https://www.geeksforgeeks.org/python/automating-some-git-commands-with-python/

⇱ Automating some git commands with Python - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Automating some git commands with Python

Last Updated : 8 Apr, 2026

Automating Git commands with Python involves using Python scripts to execute Git operations programmatically, reducing manual effort and improving workflow efficiency.

  • Uses Python modules like subprocess or libraries such as GitPython
  • Helps automate repetitive tasks like commits, pulls, and pushes
  • Enables integration of Git workflows into scripts and applications
  • Improves consistency and reduces human errors in version control operations

To start automating Git commands with Python, you will first need to install GitPython by running the following command:

pip install GitPython

Output:

👁 Image
 

Automate Git Commands with Python

1. Initialize and open a local repository

  • To initialize a new repository
  • To Open the Existing local repository

2. Clone a remote Repository

To create a local copy of the repository at the specified local_path directory, using the repository URL repo_url

import git
repo = gitRepo.clone_from('https://github.com/username/repository', '/path/to/local/directory')

Example:

Output:

Repository Cloned at location: /home/hardik/GFG_Temp/Cloned_Repo

Verify: Go to the location where you cloned the repository to verify it.

👁 Image
 

3. Add and Commit files

Add the specified files to the index, preparing them to be committed.

repo.index.add(['file1', 'file2'])

Create a new commit in the local repository with the specified commit message.

repo.index.commit('Your Commit Message')

Example:

Output:

Files Added Successfully
Commited successfully
👁 Image

4. Push to a remote Repository

Push the local commits to the remote repository

origin = repo.remote(name='origin')
origin.push()

Example:

Output:

Commited successfully
Pushed changes to origin

Verify:

👁 Image

5. Create a new branch

To create a new branch, you can use the create_head() method of the Repo class, which creates a new branch with the specified name

new_branch = repo.create_head('new_branch')

To checkout the new branch

new_branch.checkout()

Example:

Output:

First initialize a new repository using git.Repo.init() method. We then create a new branch called new_branch using the create_head() method. We then check out the new branch using the checkout() method.

New Branch Created
Changed the current branch to new_branch

To switch to an existing branch, you can use the heads attribute of the Repo class, which returns a list of branches, and then call the checkout method on the desired branch. 

Output:

Branch Changed to an existing branch

6. Pull from a remote repository

To update the local repository with the latest changes from the remote repository we use git pull command

Example:

Output:

Pulled Changes from the origin

Verify: New file hacktoberfest_tree_cert.pdf got pulled from the origin and got saved to the local machine.

👁 Image
Comment