问题标签 [git-am]
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.
git - 是否可以接受来自克隆/分叉存储库的拉取请求?
是否可以接受来自克隆仓库的拉取请求?
示例(回购的叉子):
- 回购 #1:https ://github.com/acme/original_project
- 回购 #2:https ://github.com/blah/original_project (fork)
拉取请求凌波:
- 回购 #1 有新的拉取请求,但不接受/合并
- Repo #2 想要来自 Repo #1 的新拉取请求
有没有办法接受从 Repo #1 到 Repo #2 的拉取请求?
这有意义吗?也许是一个 git 上游拉取请求?
git - git am 应该忽略提交消息中以“[]”开头的内容吗?
我有一个提交消息,例如[Hello World]Something.
然后我使用 git format-patch HEAD~1 来创建一个补丁。
补丁内容如下:
但是在我使用 git am 应用补丁后,提交消息变成了“Something”,[Hello World] 似乎丢失了。
应用补丁后如何将内容保留在“[]”中?
git - git am 从我的提交消息中阻塞字符
我在我的 git 提交消息中使用了一些私有注释。
例如,当我修复 moduleMOD_A
中的某些内容时,提交消息如下所示:
只要FIX
前面有[MOD_A]
,如果我使用生成补丁,一切正常
将此补丁作为附件发送到某个地方,然后使用
为了将此提交存储在另一个仓库中。
但是:如果我在(ie )FIX
前面没有,则在做. 整个提交消息只是.[MOD_A]
[MOD_A] Fixed something
git am
Fixed something
我的怀疑是它与生成的电子邮件主题git format-patch
行的格式有关:
似乎是因为[PATCH 23/27]
被括在方括号中,也[MOD_A]
被忽略了。
有没有办法让我[MOD_A]
不被忽视?
git - 应用补丁时有什么方法可以解决冲突吗?
我在窗户上。
由于各种原因,我们有多个不同 svn 分支的 git 实例。
很多时候,我想修复存储库 A 中的问题,生成补丁并将其应用到存储库 B。除非存在冲突,否则这工作正常。
变基时,我只需右键单击文件夹并使用 tortioseGit 并选择解析选项。这带来了一个很好的 gui 让我解决我的冲突。
有没有办法用被拒绝的补丁块来完成这个?
这是我目前创建/应用补丁的方法
git - 如何将 Git 补丁应用于具有不同名称和路径的文件?
我有两个存储库。一方面,我对文件进行了更改./hello.test
。我提交更改并使用git format-patch -1 HEAD
. 现在,我有第二个存储库,其中包含一个与 hello.test 内容相同但以不同名称放置在不同目录中的文件:./blue/red/hi.test
. 如何将上述补丁应用于hi.test
文件?我试过git am --directory='blue/red' < patch_file
了,但这当然抱怨文件的名称不同(我认为 Git 不在乎?)。我知道我可能可以编辑差异以应用于该特定文件,但我正在寻找命令解决方案。
linux - 使用 git am 的 git 补丁出错
当我尝试使用以下方法执行补丁时:
但我收到此错误:
我正在尝试使用以下方法手动合并冲突:
但我得到:
我怎么解决这个问题?我正在获取包含错误的文件的名称,但不知道该行(这是一个大文件)
也许有更好的方法来执行这种修补?
git - 用于人类可读的运动鞋网“拉/推”的 Git 格式补丁/捆绑包
我有两个房间,我在其中使用 git 维护一些源代码,一个“开发”房间,其中大多数开发发生在一个“部署”房间,我们实际使用该软件。不可避免地,部署室也会发生一些变化。我希望两个房间在 git 中共享相同的历史记录。
限制:
- 出于安全原因,这两个房间没有网络连接。
- 只有文本文件(人类可读)可以离开部署室。
使用 将更改移动到部署室很简单git bundle
,并跟踪我们移动到部署室的最后一次提交。由于仅限文本的限制,将更改移出房间更加困难。
目标:在我的两个未连接的房间之间来回移动提交,就好像git pull
发生了一样,即两个房间中的 SHA1 哈希值相同。
至今:
我试图
git format-patch
将更改从部署移回开发,但这不会记录合并,因此需要为每个连续的更改集生成不同的补丁集以及如何重现确切的合并提交的一些记录发生在两者之间。有一些关于为合并提交制作差异的讨论,但这似乎并没有捕捉到实际的祖先,只有变化。看起来补丁可能不是一种足够丰富的格式来提供必要的信息。一些捆绑到文本的脚本可用于将捆绑转换为非压缩和人类可读(ish)格式,(然后在下载后再次返回),但我没有发现存在这样一个脚本的证据。
也许可以编写一个脚本来将历史从某个共同的祖先走到最新的提交,然后 a) 制作补丁或 b) 重新创建一些众所周知的 ref 的合并。
回退: 我总是可以将来自部署室的提交压缩到一个原始补丁中并破坏历史记录,但是从 dev->deploy 进一步下载会破坏任何现有的工作副本。不理想。
更新:
我相信git fast-export
可以做我需要的,尽管大多数例子都适用于整个存储库而不是部分历史,如git bundle
. 我有一个工作玩具示例,我可以在其中将部分历史记录导出到过时的克隆中,但它需要我手动编辑快速导出输出,以便我from <sha1>
在第一次提交中添加一个。如果不进行此修改,导入会创建不同的 sha1,然后使用Not updating refs/heads/master (new tip <hash> does not contain <master's hash>)
.
Update2:
我的git fast-export
解决方案确实有效,但存在带宽问题,因为它通过提供全新文件而不是与以前文件的差异来工作。这是不可接受的,因为我实际上必须阅读所有这些额外的行。
git - 如果 git-am 因“索引中不存在”而失败怎么办?
我有一个补丁,当我尝试使用 git am 应用它时会给出以下输出
在补丁中 old/filename 实际上被移动到 new/filename 但似乎原始文件已经从源代码树中丢失了。
那么错误是什么以及如何解决/解决它?可以忽略它(使用 --reject 左右)吗?
git - 使用捆绑包时重置“提前分支”
在我当前的工作流程中,我得到了一个 git 包,我将其解包:
然后我向它添加补丁:
git log 显示补丁已提交;但是,当我运行 git status 时,它说Your branch is ahead of 'origin/master' by 2 commits.
据我了解,这意味着我必须将评论推送到原始分支。这是不可能的,因为我使用的是捆绑包。
什么是正确的方法来实现它并致力于当前的“起源/主人”?