2017-01-24 3 views
3

У меня есть этот код в Python (с помощью "импорта мерзавца"):Git толчок через GitPython

repo = git.Repo("my_repository") 
repo.git.add("bla.txt") 
repo.git.commit("my commit description") 

Теперь я хочу, чтобы подтолкнуть это совершить. Я много пробовал, не добившись успеха. Команда Python должна быть похожа на эту команду Bash:

git push origin HEAD:refs/for/master 

ответ

0

Глядя на странице документации по gitpythonhttp://gitpython.readthedocs.io/en/stable/tutorial.html. Вы должны определить удаленный репозиторий с чем-то вроде origin = repo.create_remote('origin', repo.remotes.origin.url)

затем origin.pull()

Я хотел бы посмотреть на весь пример в документации в разделе «Обработка Remotes»

Вот полный пример из документации

empty_repo = git.Repo.init(osp.join(rw_dir, 'empty')) 
origin = empty_repo.create_remote('origin', repo.remotes.origin.url) 
assert origin.exists() 
assert origin == empty_repo.remotes.origin == empty_repo.remotes['origin'] 
origin.fetch()     # assure we actually have data. fetch() returns useful information 
# Setup a local tracking branch of a remote branch 
empty_repo.create_head('master', origin.refs.master) # create local branch "master" from remote "master" 
empty_repo.heads.master.set_tracking_branch(origin.refs.master) # set local "master" to track remote "master 
empty_repo.heads.master.checkout() # checkout local "master" to working tree 
# Three above commands in one: 
empty_repo.create_head('master', origin.refs.master).set_tracking_branch(origin.refs.master).checkout() 
# rename remotes 
origin.rename('new_origin') 
# push and pull behaves similarly to `git push|pull` 
origin.pull() 
origin.push() 
# assert not empty_repo.delete_remote(origin).exists()  # create and delete remotes 
+1

Спасибо, я уже видел этот пример, но он по-прежнему не работает для меня ... Существует ошибка в первой строке координат = repo.create_remote («происхождение», репо .remotes.origin.url): «git remote add origin ssh: ........ возвращен статус выхода 128: фатальный: удаленное начало уже существует. Любые предложения? – amigo

+0

, если кто-то может помочь, я буду так благодарен:) – amigo

+0

пытается снова ... – amigo

0

Вы можете попробовать следующее. Возможно, проблема решена ...

0

У меня была та же проблема. Я решил его по телефону

repo.git.push("origin", "HEAD:refs/for/master") 
Смежные вопросы