empty commit with Repo.commit()

Question:

I’m trying to do something like repo.git.commit('-m', 'test commit', author='[email protected]') but instead of the author, I want to pass the --allow-empty to send a dummy commit to the repo. but the repo.git.commit() complains about the number of arguments I’m trying to pass. This is what I have so far:

from git import Repo
import os
from dotenv import load_dotenv

load_dotenv()

full_local_path = os.getenv('full_local_path')
username = os.getenv('username')
password = os.getenv('password')

remote = f"https://{username}:{password}@github.com:myRepo/myRepo.git"
Repo.clone_from('[email protected]:myRepo/myRepo.git', full_local_path)
Repo.git.commit('-m', 'empty commit', author='xxxxxxxxx')`
Asked By: c0d3rbox

||

Answers:

You’re ignoring the return value from Repo.clone_from, which is the Repo object on which you’ll operate in subsequent commands. You want something like:

>>> from git import Repo
>>> r = Repo.clone_from('https://github.com/octocat/Hello-World', 'hello-world')
>>> r.git.commit('-m', 'empty commit', '--allow-empty')
'[master 8d7508e] empty commit'
Answered By: larsks
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.