GitPython : git push - set upstream

2024/10/10 20:19:34

Im using GitPython to clone a master branch and do a checkout of a feature branch, I do my local updates, commit and push back to git. The code snippet looks like below,

Note : my branch name is feature/pythontest

def git_clone():repo = Repo.clone_from(<git-repo>, <local-repo>)repo.git.checkout("-b", "feature/pythontest")# I have done with file updates repo.git.add(update=True)repo.index.commit("commit")origin = repo.remote(name="origin")origin.push()

When I execute the script, I get the below error,

To push the current branch and set the remote as upstream, use
git push --set-upstream origin feature/pythontest
Answer

For pushing new branches you need to run git push --set-upstream origin branch_name you can read on --set-upstream in git documentation https://git-scm.com/docs/git-push This should do the work for gitpython:

def git_clone():branch_name = "feature/pythontest"repo = Repo.clone_from(<git-repo>, <local-repo>)repo.git.checkout("-b", branch_name)repo.git.add(repo.working_dir)commit_output = repo.git.commit(m="Commit msg")push_output = repo.git.push('--set-upstream', repo.remote().name, branch_name)

Hope this helps!

https://en.xdnf.cn/q/69851.html

Related Q&A

How to access multi-level index in pandas data frame?

I would like to call those row with same index.so this is the example data frame, arrays = [np.array([bar, bar, baz, baz, foo, foo, qux, qux]), np.array([one, two, one, two, one, two, one, two])]df = p…

How to represent graphs with IPython

Recently I discovered IPython notebook which is a powerful tool. As an IT student, I was looking for a way to represent graphs in Python. For example, I would like to know if theres a library (like num…

How to check TypeVars Type at runtime

I have a generic class Graph[Generic[T], object]. My question, is there any function which returns type passed as generic to the class Graph>>> g = Graph[int]() >>> magic_func(g) <…

Can django-pagination do multiple paginations per page?

If it cant then are there any other alternatives (either Djangos native pagination or an alternate package) that allows multiple paginations per page?I would like to display a list of about 5 objects …

List directory file contents in a Django template

Im just learning Python & Django. (Thanks to everyone who contributes here -- its been an invaluable resource!)One seemingly basic thing that Im having trouble with is rendering a simple list of s…

Produce PDF files, draw polygons with rounded corners

Whats the right tool for the job if I want to write a Python script that produces vector graphics in PDF format? In particular, I need to draw filled polygons with rounded corners (i.e., plane figures…

How can I unit test this Flask app?

I have a Flask app that is using Flask-Restless to serve an API.I have just written some authentication that checksIf the consumers host is recognised The request includes a hash (calculated by encrypt…

How to completely reset Python stdlib logging module in an ipython session?

Id like to make repeated calls to Python scripts using %run in an ipython session, and for each of those scripts to log based on cmdline arguments passed via %run.For example while debugging cmd.py I m…

I think Librosa.effect.split has some problem?

firstly, this function is to remove silence of an audio. here is the official description:https://librosa.github.io/librosa/generated/librosa.effects.split.htmllibrosa.effects.split(y, top_db=10, *karg…

Replace None in list with leftmost non none value

Givena = [None,1,2,3,None,4,None,None]Id likea = [None,1,2,3,3,4,4,4]Currently I have brute forced it with:def replaceNoneWithLeftmost(val):last = Noneret = []for x in val:if x is not None:ret.append(x…