I'm using GitPython to initialize a new local repository, create the initial commit and push to a canonical repository. Unfortunately, the last step is failing and I'm having a lot of trouble understanding why. I'm sure I'm just using the GIT_SSH_COMMAND
variable wrong, but I'm not sure how. There aren't many examples out there to go on.
I've read this SO question and dug into the relevant issue and commit, but I clearly haven't managed put it together correctly.
Help?
"Proof" of Git v2.3+
$ git --version
git version 2.3.1
Script Snippet
# Please take my word that I've init'd the repo and that any variables
# have been defined and initialized.
git_ssh_identity_file = os.path.expanduser('~/.ssh/id_rsa')
git_ssh_cmd = 'ssh -i %s' % git_ssh_identity_file
with git_project.git.custom_environment(GIT_SSH_COMMAND=git_ssh_cmd):
git_project.remotes.origin.push(git_project.heads.master)
Resulting Error
Traceback (most recent call last):
File "./ct-new-project.py", line 204, in <module>
git_project.remotes.origin.push(git_project.heads.master)
File "/Library/Python/2.7/site-packages/git/remote.py", line 667, in push
return self._get_push_info(proc, progress or RemoteProgress())
File "/Library/Python/2.7/site-packages/git/remote.py", line 588, in _get_push_info
handle_process_output(proc, stdout_handler, progress_handler, finalize_process)
File "/Library/Python/2.7/site-packages/git/cmd.py", line 202, in handle_process_output
return finalizer(process)
File "/Library/Python/2.7/site-packages/git/util.py", line 158, in finalize_process
proc.wait()
File "/Library/Python/2.7/site-packages/git/cmd.py", line 300, in wait
raise GitCommandError(self.args, status, self.proc.stderr.read())
git.exc.GitCommandError: 'git push --porcelain origin master' returned with exit code 128
GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa' git push --porcelain origin master
? Just in case there's something actually wrong with your repo. Or isGIT_SSH_COMMAND
something specific to GitPython? – kdopen Mar 2 '15 at 16:35GIT_SSH_COMMAND
is agit
variable, notGitPython
so you should be able to check from the command line. – kdopen Mar 2 '15 at 17:11.git/config
got out of sync with the code I was trying to push and that was the actual problem at this point--I was trying to push to a repo that didn't actually exist. /punitive headslap – Rob Wilkerson Mar 2 '15 at 17:48