git - Clearcase 到 Git 的迁移问题

标签 git migration clearcase

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

  1. 我团队的某个人将他的一个分支 push “origin/master”分支并搞砸了该分支。我有一个本地 repo “master”,我想将它完全推送到我的分支机构。我该怎么做?

  2. 我的电脑上有两个分支 - 我想知道它们之间的区别,并制作一个脚本,人们可以从不同的计算机运行并重新应用所有更改(删除、插入和修改)。

  3. (关于 2 的评论)非常重要:这两个分支是这样创建的: 这两个分支 - 一个比另一个更高级 - 也就是说,它包含另一个没有的更改,另一个没有第一个没有的版本。

也就是说,它不是 fork 。希望这可以简化事情。

最佳答案

(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

关于git - Clearcase 到 Git 的迁移问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20627405/

相关文章:

Git-修改 .git refs 目录中的提交数据有什么危险

sql-server - 从 SQL 迁移到 MongoDB?

Drupal 8 - 节点引用迁移到实体引用类型

java - 尝试更改时出现设置构建路径错误

c++ - 如何强制 GNU make 重新编译在具有不同 FLAGS 的两个目标中使用的相同目标文件

git - 如何桥接 git 到 ClearCase?

git - 删除一个我不应该提交给 Git 的文件

git - 从 bitbucket 存储库推送到共享主机 ftp 服务器

git - "pure git"有pull request的概念吗?

c# - 已启用迁移 : System. Runtime.Serialization.SerializationException 类型未为成员解析