Search code examples
pythongitpython

GitPython cloning and pushing in remote directory


I am writing a script that clones and pushes something to the repository on gitlab. The thing is I have to clone to a specific directory on the filesystem and push from the same directory the project is cloned to. I managed to solve my issue, but I'm having a question regrading functionality with cloning and pushing via GitPython.

I followed this answer to clone a repository:

https://stackoverflow.com/a/2472616

The person that answered also linked the following documentation and stated that their solution isn't nice:

https://gitpython.readthedocs.io/en/stable/tutorial.html https://gitpython.readthedocs.io/en/stable/reference.html#git.repo.base.Repo.clone

git.Git("../target/.").clone(f"{ repo }")

This worked wonderfully...but I couldn't find this in the documentation. What is this .Git part? Where can I find this in the code of the library? I am quite new to Python and I would like to figure out how is this implemented.

I have managed to push in the same way:

git.Git(f"../target/{ app_name }").add(".")
git.Git(f"../target/{ app_name }").commit("-m", "Update")
git.Git(f"../target/{ app_name }").push()

Solution

  • git.Git(...) 
    

    is the same as

    git.cmd.Git(...)
    

    You can find what it does here: https://gitpython.readthedocs.io/en/stable/reference.html#module-git.cmd