标签: cherry-pick

在TFS中,我如何挑选变更集到不相关的分支?

我有一个非常混乱的TFS结构,我正在努力清理(感谢我的前任).我现在有一种情况,我需要有选择地将变更集从一个分支带到另一个分支,在那里它们没有父/子关系,我不希望这些变更通过它们的共享主干.我怎样才能做到这一点?

我尝试了一个毫无根据的合并 - 在TFS中,如何在特定的变更集上进行无基础合并? - 告诉我合并没有变化.

我想要实现的是这样的TFS:搁置集可以恢复到另一个位置吗?除了变更集.

在GIT中,我认为这将是一个简单的樱桃选择.

我的结构看起来像:

   Y-C1-C2-C3
  /
X-------------
    \
     Z
Run Code Online (Sandbox Code Playgroud)

问题是如何在不通过X的情况下将C2从Y转换为Z?

merge tfs cherry-pick

6
推荐指数
1
解决办法
5710
查看次数

为什么樱桃选择更改多次提交?

我在这里有2个分支,比如branch1和branch2.branch1中添加了许多新功能,branch2是稳定的.今天,我想将branch1中的1个功能合并到branch2.所以,我跑了git cherry-pick <commit-for-feature1-in-branch1.我想应该只有改变<commit-for-featur1-in-branch1将被合并到branch2.但我发现其他功能包含更多更改.

我以为它只会为那个指定的提交获得差异,对吧?

仅供参考,branch1中的提交是从其他开发分支合并的,这是否可能导致此问题?

我做错了什么?

谢谢.

git cherry-pick

6
推荐指数
2
解决办法
956
查看次数

如何 git cherry-pick 提交声明我们的历史包含它

我做了以下事情:

git fetch upstream
git cherry-pick xyz
Run Code Online (Sandbox Code Playgroud)

选择的提交已被干净地应用,只是在其中一个文件中它具有与我在上一次提交中已经完成的完全相同的更改,因此不会重新应用这些更改。

代码方面的一切都很好,但我希望在我的历史中拥有提交哈希。在我的历史中,它以一个新名字出现。这甚至可能吗?就我正在阅读的 git merge “ours” 策略而言,它似乎通常是可能的,但是如何为一次提交做到这一点?

我想要这个,所以以后更容易确定提交upstream有哪些我没有的。目前在 githubnetwork视图中,我认为挑选的提交是我没有的单独的东西。

附加信息:@CharlesB 所说的对我来说很有意义。但是merge -s ours魔法是怎么做的呢?在这种情况下,对我来说并不重要cherry-pick。因为我想进行的更改只有一个并且位于upstream/master. 所以只是为了尝试一下,我做了:git merge -s ours upstream/master

现在git log --graph --pretty=oneline --abbrev-commit我看到类似的东西:

*   9e8108b Merge remote-tracking branch 'mgencur/master' for better github netw
|\  
| * aa7117d Fix displaying watchers/watching for incorrect user // this commit magically appeared after merge -s ours
* | ff05f8c Fix displaying watchers/watching for incorrect user …
Run Code Online (Sandbox Code Playgroud)

git github cherry-pick git-cherry-pick

6
推荐指数
1
解决办法
3509
查看次数

Gitcherry-pick:如何重新生成更改ID?

我们将 Git 与 Gerrit 一起使用,并使用 commit hook 为 Gerrit 生成更改 id。现在的问题是,当择优提交时,不会触发提交挂钩,因此不同分支中的不同提交可能存在相同的更改 ID。有什么快速的方法可以让更改 ID 在挑选过程中重新生成吗?

谢谢。

git cherry-pick gerrit

6
推荐指数
1
解决办法
6469
查看次数

Git cherry-pick导致合并冲突,而合并则不会

我正在尝试学习如何使用git cherry pick,我阅读了git通过执行返回的手册页,git cherry-pick --help但似乎没有帮助.我将尝试解释下面的问题.我有两个分支masterother.

在分支上master 提交历史记录是

0x2 Second commit from master branch
0x1 Initial commit
Run Code Online (Sandbox Code Playgroud)

我正在跟踪的存储库中唯一的文件readme具有以下内容

Some text
Run Code Online (Sandbox Code Playgroud)

在分支上other 提交历史记录是

0x5 CHECKPOINT, going to cherry-pick onto master
0x4 second commit from branch other
0x3 first commit from other branch:
0x2 Second commit from master branch
0x1 Initial commit
Run Code Online (Sandbox Code Playgroud)

并且readme文件的内容是

Some text.

Adding some text from other branch.  Adding some more text.

Going to cherry-pick this …
Run Code Online (Sandbox Code Playgroud)

git version-control merge cherry-pick

6
推荐指数
1
解决办法
9605
查看次数

cherry pick 是否用 lfs 创建新文件

我有一个包含很多分支和大文件的存储库。我需要从另一个分支获取到我的分支的提交,因此我打算使用 gitcherry-pick,但提交包含一个使用 git lfs 存储的文件。

我想知道的是,会挑选该提交创建一个新文件并将其存储在 git lfs 中,增大我的 lfs 存储的大小,还是会将引用复制到旧文件。

cherry-pick git-cherry-pick git-lfs

6
推荐指数
0
解决办法
837
查看次数

从git到svn的挑选(或者,如何在git中保存项目历史并在svn中发布)

我是唯一一个使用git的人,其他人都在使用svn.我用'git svn'连接到团队svn,大多数情况下都可以.最近,我最初是在我自己的单独的git repo上开始了一个项目,现在我需要将其中的东西合并到svn中.但是,我仍然希望在发行版之间不断调整我自己的隐私实现.

那么,从我的私人仓库到svn-cloned仓库挑选一些提交的最直接的方法是什么?要求是保留完整的本地历史记录,并且每个选择只有一个svn提交.或者是否需要进行一些挤压?

作为实现这一目标的方法,有没有办法让私有仓库作为svn克隆仓库的另一个来源?

git workflow git-svn cherry-pick

5
推荐指数
1
解决办法
743
查看次数

簿记清理git中分支的等效变化

我正在尝试清理大量的主题分支,主要是因为mastergithub 中的分支概述不再在非活动主题分支中显示虚假的"n ahead"指示符,因为存在相同的更改.

如果没有这些虚假指标,这个概述页面将提供一种很好的方式来一目了然地看到来自旧主题分支的任何提交是否被无意中遗漏而未被合并回来master.

在下面的图中,Y是在分支提交topic,后来施加到master作为Y'(因此它们具有不同的SHA1哈希,但相同的补丁ID).

A --- B --- C --- Y' --- E    <-- master
       \ 
        X --- Y               <-- topic
Run Code Online (Sandbox Code Playgroud)

git cherry master topic 适当报告:

- Y
Run Code Online (Sandbox Code Playgroud)

但是,如果我试图通过发出清理它git merge topicmaster,我收到了合并冲突,因为变化Emaster此后改变其对应用补丁的上下文.

有没有办法告诉master"嘿,你真的已经Y有了,所以你可以停止报告你没有."?(能够以自动/编程方式应用的方式执行此操作是关键.)

git cherry-pick

5
推荐指数
1
解决办法
213
查看次数

git cherry-pick合并删除文件

我正在尝试在git中挑选一个提交,这会添加一堆文件,但还会修改分支中尚不存在的文件。

发生冲突的是,所有要添加的文件都已暂存,而在提交中已更改但分支中尚不存在的文件未暂存,并且列出为:

deleted by us: app/changed_file.rb
Run Code Online (Sandbox Code Playgroud)

如果我只是提交已暂存的文件,当changed_file.rb最终合并到分支中时,是否会引起问题?

git cherry-pick

5
推荐指数
1
解决办法
3660
查看次数

什么是git cherry-pick的TFVC中的等价物

我很抱歉我的问题,但我是TFS noob用户,git cherry-pick的TFVC(团队基础版本控制)中的等价物是什么?

git tfs cherry-pick git-cherry-pick tfvc

5
推荐指数
2
解决办法
3508
查看次数