1
使用gitpython模塊,我寫python腳本來檢查git的差異 - > git的添加所有修改過的文件逐一。最後,我想提交所有這些更改,但是我沒有找到命令的確切語法。gitpython:對於git的命令語法提交
我試着用下面的代碼,'git add'完美工作,但'git commit'給出錯誤。
import git
repo = git.Repo(os.getcwd()
files = repo.git.diff(None, name_only=True)
for f in files.split('\n'):
show_diff(f)
repo.git.add(f)
repo.git.commit('test commit', author='[email protected]')
這是我看到的錯誤,它似乎在cmd參數中缺少某些東西。
In [10]: repo.git.commit("test commit", author="[email protected]")
---------------------------------------------------------------------------
GitCommandError Traceback (most recent call last)
<ipython-input-10-b4505b7c53c2> in <module>()
----> 1 repo.git.commit("test commit", author="[email protected]")
c:\python27\lib\site-packages\git\cmd.pyc in <lambda>(*args, **kwargs)
421 if name[0] == '_':
422 return LazyMixin.__getattr__(self, name)
--> 423 return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
424
425 def set_persistent_git_options(self, **kwargs):
c:\python27\lib\site-packages\git\cmd.pyc in _call_process(self, method, *args, **kwargs)
866 call.extend(args)
867
--> 868 return self.execute(call, **_kwargs)
869
870 def _parse_object_header(self, header_line):
c:\python27\lib\site-packages\git\cmd.pyc in execute(self, command, istream, with_extended_output, with_exceptions, as_process, output_stream, stdout_as_string, kill_after_timeout, with_stdout, universal_newlines, shell, **subprocess_kwargs)
684
685 if with_exceptions and status != 0:
--> 686 raise GitCommandError(command, status, stderr_value, stdout_value)
687
688 if isinstance(stdout_value, bytes) and stdout_as_string: # could also be output_stream
GitCommandError: Cmd('git') failed due to: exit code(1)
cmdline: git commit [email protected] test commit
stderr: 'error: pathspec 'test commit' did not match any file(s) known to git.'
你讀過[文件](http://gitpython.readthedocs.io/ en/stable/tutorial.html#the-index-object)? –