新建一个仓库,里面只放一个文本文件,分别做6次提交,,此时git log --oneline 的样子应该是这样的
文件的内容是这样的
我要丢弃 442452d 提交,但保留e09949e提交,我的做法是这样的
git reset --hard 260effc
然后 git cherry-pick e09949e
此时爆冲突了,如下图
我不理解的是为何会冲突,按道理应该直接就patch了,不应是上图的样子,e09949e这次提交应该是只包含‘4’ 不包含 ‘3’吧,如果要是还需要手动去掉‘3’的话,那cherry-pick 还有啥意义呢,我直接进文件把它删掉就好了啊,还是我用法有问题?求大神指点!!!
git revert 442452d だけではどうでしょうか?
Commit は相対的な変更を記録し、変更されたコンテンツの上位行と下位行に関連します。前の行が失われると、競合が報告されるため、手動で解決する必要があります。 2 つのコミットが関連関数内に存在しなくなった場合は、直接元に戻すことができます。
さらに、このリセット --ハードを実行してからチェリーピックする方法を使用することは良くありません。他の共同作業者が途中で他のコミットを追加し、その後の競合処理がより困難になる可能性があります。
cherry-pick より良い使用シナリオは、1 つのブランチ上に別のブランチの別の機能が必要な場合です。
e09949e
には4
のみが含まれているため、これは前のコミット442452d
との差分です。e09949e
只包含4
,是针对前一个commit442452d
的差异而言。可你现在把
しかし、現在は442452d
给去掉了,希望把e09949e
的父节点从442452d
指到260effc
442452d
を削除し、442452d
からe09949e
の親ノードを260effc
にポイントしたいと考えています。確かに紛争になるだろう。