1.入门代码
from git import Repo
import datetime
# current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# git 提交工具类
def commit_git(path,origin,branch):
repo = Repo(path)
print('=====================开始add,path='+path)
index = repo.index
index.add(['*'])
print('=======add结束,开始commit')
index.commit('python自动提交'+datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
print('=======commit结束,开始push,origin='+origin+',branch='+branch)
remote = repo.remote(origin)
remote.push(branch)
print('=====================push结束,path='+path)
if __name__ == "__main__":
path = r'E:\Use\caogao\demo2'
origin = 'origin'
branch = 'master'
commit_git(path,origin,branch)
# print(current_time)
2.常用异常
Traceback (most recent call last):
File "CommitGit.py", line 20, in <module>
commit_git(path)
File "CommitGit.py", line 15, in commit_git
remote.push()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\git\remote.py", line 1118, in push
return self._get_push_info(proc, progress, kill_after_timeout=kill_after_timeout)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\git\remote.py", line 927, in _get_push_info
proc.wait(stderr=stderr_text)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\git\cmd.py", line 604, in wait
raise GitCommandError(remove_password_if_present(self.args), status, errstr)
git.exc.GitCommandError: Cmd('git') failed due to: exit code(128)
cmdline: git push --porcelain -- origin
stderr: 'fatal: The current branch master has no upstream branch.'
解决是remote.push(branch)传入对应分支