问题标签 [git-patch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Github 拉取请求并在实际合并之前模拟合并
如果合并拉取请求,我需要遵循哪些一般步骤来生成源的本地副本(在它实际合并之前)?
一个示例情况:假设用户 A 将 repo_X(由用户 X 拥有)分叉到 repo_X_A,对源src/ brittle.c和libs/brittle-lib.c 进行更改,并为 repo repo_X 提出 github 拉取请求。现在,假设用户 X 想要在将源合并到 repo_X 之前对源进行一些检查,我想生成这些源的副本brittle.c和brittle-lib.c并进行更改(实际上不将更改合并到回购_X)。我可以以编程方式进行吗?
通过 GitHub API(尤其是pull req API),我可以获得给定 pull req 的修改文件列表。现在,我该怎么做才能生成源的本地副本,就像它们在拉取请求中应用更改后一样?
如果是正确的,我应该以 .patch 格式(再次通过 API)获取差异,从 repo/branch/tag 获取源,将差异修补到它上面。需要有关如何实现在 python 程序中应用更改的这一部分的指示吗?为 *nix 补丁实用程序使用 python 绑定?
这确实是正确的方式,还是有更简单/更好/优雅的方式?我正在尝试使用 python-requests 和 github API。
git - 如何在不产生不同 SHA1 的情况下提交一份副本?
尽管我试图避免它,但我必须维护三个master
等效的分支,每个分支都有微小的变化。我已经阅读git
和使用它几年了,所以我熟悉以下传统智慧:
merge
除非有意义,否则不要这样做。改为使用rebase
。- 如果您只需要提交一次,
cherry-pick
是您的朋友。 - 推送前总是
pull --rebase
在遥控器上。 - 保持特征符合
rebase
.
他们没有告诉你的是,传统智慧会创建一堆几乎相同的提交,除了会更改其 SHA1 的小细节。为什么这很重要?它违背了用git log --left-right --graph --cherry-pick --oneline branch1..branch2
and比较分支的目的git show-branch
,这尤其令人讨厌。感觉就像是在滥用廉价分支。这使得几乎不可能看到每个分支中缺少哪些补丁。
那么,如何使多个分支与相同的 SHA1 保持一致,以便可以使用这些工具呢?补丁是最好的方法吗?
git - 将 Bitbucket 拉取请求作为补丁应用
我有一个关于 Bitbucket 的仓库,只有我有写权限。
有人分叉了那个 repo,进行了更改,并从 fork 向我的 repo 发出了拉取请求。
如何将拉取请求作为 git 补丁临时应用于我的存储库以进行测试?
分叉的回购是私有的,所以我不能把它拉下来,反正我也不想这样做。
在 GitHub 上,您只需转到拉取请求并在 url 末尾添加一个 .patch 即可下载补丁。这不适用于 Bitbucket。
git - git pull remote master in detached head
这一直困扰着我关于 git 的问题。我有一个包含多个遥控器的存储库,我需要将修补程序应用于遥控器的主分支。所以,我尝试做:
但是,我总是以一种超然的头脑状态而告终。签出遥控器主人并应用补丁的正确方法是什么?
git - 应用 git patch 时忽略上下文行中的空间差异
我正在尝试应用从某个 git 存储库生成的补丁。补丁上下文行看起来像这样
在我的代码中它看起来像这样
当我应用补丁时
它说
并提供仅在上述空间中存在差异的上下文块。当我解决空间问题时,问题就消失了。有没有办法指定上下文行内的空格可以忽略?
git - 在没有上下文的情况下查看 git 补丁
因为除了实际的变化之外,每个补丁都包含一些周围的线条,
我想使用这些信息并向我展示一个并排比较漂亮的视觉表示编辑线条,删除线条等等 - 我们的那个重新习惯于融合/IDE。
我只是讨厌“正负”的观点。
我知道补丁缺少整个受影响的文件内容,但补丁中始终存在 1 或 2 行周围的行 - 这对我来说已经足够了。
有什么工具可以做到这一点吗?
python - 如何将 git 格式补丁数据存储到变量而不是写入文件?
如何将git format-patch
输出存储到变量而不是使用 python 写入磁盘?
还是有其他方法可以创建git diff
主题行?
git - 如何使用 python 从 git patch 中获取标头信息?
是否有任何命令可以从 git 补丁文件中获取电子邮件发送/发往日期和日期,还是我必须从解析补丁文件中读取它?
git - 涉及 Outlook 时使用 Git am
我在虚拟机中使用 linux,但我的主机是安装了 Outlook 的 Windows。目前,当我收到包含 git 补丁的电子邮件时,它们会在我的 Outlook 中弹出。
如何应用这些补丁?它们不是作为附件发送的,它们可能是通过 git send mail 发送的。
我可以设置我的 VM 以在 VM 邮箱中接收它们吗?(目前没有成功)
我可以将补丁保存到 git am 友好格式的文件夹中吗?到目前为止,我一直在尝试这个角度,我想,如果我将消息拖放到一个文件夹中,然后在该文件夹上运行 git am,那么它会起作用,但是如果我这样做,Outlook 会将它们保存为 .msg 而不是 .eml他们似乎不是一种转换方式。我曾尝试另存为文本文件,但随后我得到 git am 的“补丁没有有效的电子邮件地址”或 git apply 的“尾随空格”。我猜我可以通过删除 windows 行结尾来解决空格问题,但这似乎有点像 hack,因为我作为商业团队的一员这样做,我希望它能够正常工作。
- 感谢您的帮助,克里斯
git - 我可以在 Github 上提交一个带有“pull-and-patch”的错误修复请求吗?
我在 Github 上托管的项目 repo 中遇到了一个错误,因此我将其记录为问题,作为回应,项目维护人员要求我“使用补丁发出拉取请求”并关闭该问题。
这是否意味着我要修复问题(“补丁”),或者补丁可以是一种更“直接”的方式来指示问题,即直接引用有问题的代码,而不建议修复?