Clearcase 到 Git 迁移问题

3

我正在从ClearCase迁移到Git,遇到了两个问题:

  1. 我的团队中有人将他的某个分支推送到“origin/master”分支中,搞乱了这个分支。我有一个本地repo“master”,我想要完全推送它并使其与我的分支完全相同。我该怎么做?

  2. 我在电脑上有两个分支 - 我想知道它们之间的差异,并编写一个脚本,让其他电脑的人可以运行并重新应用所有更改(删除、插入和修改)。

  3. (关于2的注释)非常重要:这两个分支是这样创建的:一个分支比另一个更先进--也就是说,它包含了另一个没有的更改,而另一个则没有第一个没有的版本。

也就是说,这不是一个fork。希望这样能简化问题。

1个回答

3

(1)

git push -f origin master

-f 选项将用你的分支覆盖远程分支。

(2)

这将获取 branch1branch2 之间的提交 ID。

git log --pretty=format:%h branch1..branch2

您可以通过执行git checkout abc123来进入每个分支。

顺便问一下,您在#2上想做什么?有很多非常好的内置Git功能,例如git bisect,也许可以解决您的问题。

编辑

(A) 如果您想保留提交历史记录,则应使用以下命令创建一个补丁:

 git format-patch branch1..branch2 --stdout > my_patch.patch

这将生成一个补丁文件,包含branch1branch2之间的所有变更。然后使用以下命令应用此补丁:

 git am < my_patch.patch

(B) 如果你只想获取更改内容,而不需要提交记录,

 git diff branch1..branch2 > my_patch..patch

然后

 git apply < my_patch

嗨,我想准备一个补丁 - 这样其他分支的人就可以得到我所做的更改,即使他们有不同的版本。实际上,我想要一个脚本放在共享位置,它将重新播放/重新应用我对他们的代码库所做的更改。 - user967710
谢谢。我会尝试这个。 - user967710

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接