问题标签 [git-cherry-pick]
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 - 两个有共同代码的项目
我被分配到两个项目,这两个项目都来自一个共同的父级,并且目标是大约在同一时间合并回父级。为简单起见,我们称它们为 master、projA 和 projB。
假设源代码的文件夹结构是:
/src/main/UI
/src/main/backend
假设有一个文件,我们想在其中添加一个新的通用错误处理程序。
此功能应在 projA 和 projB 之间共享。
/src/main/backend/common/errorhandler.cpp
分支如下(均从 master 分支并最终合并回 master。aN/bN 是项目特定的更改。AN/BN 是更改 errorhandler.cpp
所以在某些时候,projB 中可能需要对 projA 进行更改,所以提交看起来像这样(比如在将 A1 挑选到 projB 之后)。
根据我的阅读,我不能只将 A1 合并到 projB 中。它将合并 a1、a2 和 A1。
我可以使用cherry-pick,这将是projB中的A1',但代价是当projA和projB都合并回master时,A1`和A1被视为单独的更改。
我希望有人可能有一个更好的计划,我仍然可以使用合并,这样我就不会得到“重复”的更改。
git - Git cherry-pick 语法和合并分支
所以我之前做过无数次樱桃挑选,现在看来我必须在生活中失败,我正试图从一个分支挑选到另一个分支,这应该很容易,但我却得到一个关于它是合并的错误但是没有给出-m?
看起来不对……应该是:
从什么时候开始我必须提供 -m 功能?
git - Git Cherry-Pick 和 Git Revert 有什么区别?
我仍然发现 git revert 的行为有些令人困惑。在经历了巨大的痛苦和误解之后,我了解到 git revert否定了一个特定的提交,而不是恢复到 那个提交。到目前为止,我还没有使用过 git cherry-pick。
你能详细说明这两个 git 命令吗?您喜欢何时以及如何使用它们?
git - 为什么 git log --cherry-pick 这么慢?
我想得到两个给定标签之间的变化,命令是:
但它很慢。
我一一测试参数。只有在使用 时--cherry-pick
,git log 才会非常慢。
为什么?有人可以帮我吗?
git - 使用 Git 将特定提交移动到新分支时出错
我有这个:
我需要这个:
我试过这个:
但我得到了这个:
所以我做$git status
了并得到了Unmerged paths ... both modified: .gitignore
. 在再次尝试之前,我git add
ed 和git commit
ted 再次得到相同的错误消息。
如何将特定提交移至新分支?
git - git 樱桃挑选并合并
我当前的分支是分支-X。我从分支-Z 中挑选一个提交 Y,然后计划将分支-Y 合并到分支-X。合并期间是否会再次应用提交 Y?
马蒂亚斯
git - 如何在子分支中选择一个提交并将其合并到主分支中?
所以我有:
我想在 myBranch 中选择 commitB 并将其合并到 master 分支,我该怎么办?
git - 为什么 git-cherrypick 什么也没说
我为以下问题搜索了很多,但无法获得任何实质性信息...请帮助我,创建了一个临时分支 202116 并尝试对 gerrit 202116 进行挑选,我收到以下消息,为什么我没有能够挑选这个 gerrit,为什么我会收到这个错误?请提供您的输入
git - 如何 git cherry-pick commit 声明我们的历史包含它
我做了以下事情:
选择的提交已被干净地应用,只是在其中一个文件中它具有与我在之前的提交中所做的完全相同的更改,因此不会重新应用这些更改。
代码方面的一切都很好,但我想在我的历史中拥有提交哈希。在我的历史中,它以一个新名字出现。这甚至可能吗?就我正在阅读 git merge “我们的” 策略而言,它似乎通常是可能的,但如何为单个提交做到这一点?
我想要这个,以便以后更容易识别提交所做upstream
的事情我没有。目前在 githubnetwork
视图中,我认为精心挑选的提交是我没有的独立的东西。
附加信息:@CharlesB 所说的对我来说很有意义。但是merge -s ours
魔法是怎么做到的呢?在这种情况下,这对我来说并不重要cherry-pick
。因为我想要进行的更改只是一个并且在upstream/master
. 所以只是为了尝试一下,我做了:git merge -s ours upstream/master
现在git log --graph --pretty=oneline --abbrev-commit
我看到了类似的东西:
之前 的相同命令git merge -s ours
看起来像:
正如您在挑选提交 aa7117d 之后所看到的,没有迹象表明 aa7117d 已应用于我的 fork 存储库。但是在合并后它表明它在那里,尽管我的文件中没有任何变化。
这使我认为确实可以声明一个分支中包含的许多提交,尽管它们的应用与上游应用的完全不同。
update2:我看到了如何在 Git 中合并特定提交及其最佳答案的问题。因此,也将不胜感激解释为什么它不可能或未实施。