Нажмите для удаленного хранилища

1

У меня есть два репозитория на github, используя gitpython. Я пытаюсь вытолкнуть файл из одного репозитория в другой удаленный репозиторий. Мне удалось сделать это, используя git, но борясь с кодом gitpython.

git remote add remote_to_push git@bitbucket...
git fetch remote_to_push
git checkout remote_to_push/master
git add file_to_push
git commit -m "pushing file"
git push remote_to_push HEAD:master

Мне удалось создать объект репо удаленной системы, я думаю, со следующим

from git import Repo
repo = Repo('path/to/other/git/repo')
remote = repo.remotes.origin

Я не могу понять, как добавить что-то, а затем нажать, если я позвоню

remote.add("file_to_push")

Затем я получаю ошибки о функции create()

TypeError: create() takes exactly 4 arguments (2 given)

Попытка следовать тому, что они сделали в том, как нажать на удаленное репо с помощью GitPython с

remote.push(refspec='{}:{}'.format(local_branch, remote_branch))

Я предполагаю, что он должен работать с использованием master и master как удаленных ветвей, поскольку они оба должны существовать, но это дает мне ошибку

stderr: 'error: src refspec master does not match any.'

Спасибо

Теги:
gitpython

1 ответ

1
Лучший ответ

Решил. Сначала создан пульт другого репо

git remote add remote_to_push git@bitbucket...

Затем код gitpython

from git import Repo

repo = Repo('path/to/other/git/repo') #create repo object of the other repository
repo.git.checkout('remote_to_push/master') #checkout to a branch linked to the other repo
file = 'path/to/file' #path to file to push
repo.git.add(file) # same as git add file
repo.git.commit(m = "commit message") # same as git commit -m "commit message"
repo.git.push('remote_to_push', 'HEAD:master') # git push remote_to_push HEAD:master

Помимо документов, я нашел следующее, чтобы быть весьма полезным, если кто-то борется с gitpython, поскольку я нашел это довольно болью

Опыт Python Git?

http://sandlininc.com/?p=801

Git push через GitPython

Как нажать на удаленное репо с помощью GitPython

Ещё вопросы

Сообщество Overcoder
Наверх
Меню