选择文件/更改其他git分支,而不会丢失git怪历史

问题描述 投票:0回答:1

在保持干净的git怪历史的同时,搅拌其他分支的其他提交很简单。

[如果我正在UserA上从事branch-A的工作,然后我在实验branch-B中知道,UserBUserCFunctionC上的数百次提交过程中一直被黑客窃取,想要引入。提交的方式太多了,所有那些提交可能还有其他我不想引入的更改。

我能以保留其中历史记录的方式引入FunctionC的最惯用的方法是什么?

我已经搜索了很长时间,但是在某些提交中我想要的更改没有完全可用的情况下,似乎没有办法。所有其他方法似乎都无法追溯历史。同时,我基本上只是通过git checkout --patch branch-B进行了复制/粘贴,但是除了UserA之外,它没有任何涉及其中的活动,也没有任何人来检查git的责任。

git merge branching-and-merging git-flow git-cherry-pick
1个回答
0
投票

我可以用保留保留其中历史记录的方式引入FunctionC的最惯用的方法是什么?

Git中只有一个历史渊源。在Git中,历史就是提交。提交历史记录。这就是全部。如果您询问

file

历史记录或line历史记录,Git将从提交历史记录中合成一些内容。对于某些适当的X,可能会告诉或假设的批注命令look at commit X,这不是当前提交,也不是当前提交的直接父级,但是现有工具可以通过,在获得提交后,先查看该提交的父级(或对于合并提交,父级复数),然后查看父级的父级,依此类推。这就是为什么您没有找到满意的东西的原因。这些提交及其历史都是您提交历史的一部分(是您当前提交的前身),或者不是。如果不是,则git blame不会看它们。

请注意,您可以根据需要使用git replace来伪造历史记录。您可能可以获取所需的功能,然后使用git replace进行伪合并,以便git blame可以返回到真正的父级以及从中获取文件的提交。但是有很多关于替换提交的警告。好处是您可以删除替换项。最大的缺点是默认情况下未克隆它们。

© www.soinside.com 2019 - 2024. All rights reserved.