python - 如何在 gitpython 中快速“合并”?
问题描述
编辑:这是被编辑的,因为我在示例中犯了一个错误。
假设我有一个非常简单的 git 结构:
- 一个远程分支,称为“brem”
一个本地的,称为“集团”
self._repo = git.Repo(args.full_path_to_repo)
对 a 进行了更改后bloc
,我可以将其推送到远程使用
self._repo.git.add(update=True)
self._repo.index.commit("commit_message")
origin = self._repo.remote(name=self.origin_name)
origin.push()
我现在想将此更改合并到另一个本地存储库中。
我愿意
def _pull(self):
origin = self._repo.remote(name=self.origin_name)
try:
origin.pull()
except git.exc.GitCommandError as ex:
print "There was nothing new to pull"
return
正确拉动遥控器。
然后我尝试
origin = self._repo.remote(name=self.origin_name)
self._repo.git.merge(origin)
这给出了一个例外:
标准错误:'合并:bitbucket_repo - 不是我们可以合并的东西'
假设没有冲突,将拉取的更改从远程分支合并brem
到本地分支的正确方法是什么?bloc
编辑2:
我设法让它简单地工作
self._repo.git.execute('git pull')
但这违背了使用库的目的。
我仍然希望看到这样做的正确方法
解决方案
您需要从远程指定一个 git 引用以合并到当前 HEAD。如果它是一个分支并且你知道你会做的分支名称:
self._repo.git.merge(origin.heads["branch_name"])
在此处查看有关在 gitpython 中访问参考的文档:https ://gitpython.readthedocs.io/en/stable/tutorial.html#advanced-repo-usage
推荐阅读
- typescript - node_modules/@types/babel _template/index.d.ts :16:28 - 错误 TS2583: 找不到名称 'Set'
- javascript - 为什么我的代码抛出“无法读取未定义的属性'parentNode'”?
- c++ - 使用 Qt QPainter 和 QSvgGenerator 创建的 SVG 裁剪为视口大小
- asp.net-core - 从 .netCore Web 应用程序项目中读取类库项目的程序集版本
- git - git config 设置自动创建同名远程分支
- z3 - 在 Solverfor("QF_LIA") 中使用超时选项时出错
- ios - 如何在长按时取消选择 UITableViewCell?
- node.js - Node.JS、Express 和 MongoDB Atlas:: 多个集合 ejs
- http - 从 Postman 生成 cURL 请求
- r - 增加 image.plot 图例中的字体大小