我正在从ClearCase迁移到Git并遇到两个问题:
我团队的某个人将他的一个分支推入“起源/主人”分支并搞砸了分支机构。我有一个本地回购“大师”,我想完全推动它,并使其完全适合我的分支机构。我该怎么做?
我的电脑上有两个分支 - 我想知道它们之间的差异并制作一个脚本,人们可以从不同的计算机上运行并重新应用所有更改(删除,插入和修改)。
(评论约2)非常重要:两个分支的创建方式如下: 两个分支 - 一个比另一个更高级 - 也就是说,它包含另一个没有的变化,另一个分支没有第一个没有的版本。
也就是说,它不是一个分叉。希望简化事情。
答案 0 :(得分:3)
(1)
git push -f origin master
-f
将覆盖您的远程分支。
(2)
这将获得branch1
和branch2
之间的提交ID。
git log --pretty=format:%h branch1..branch2
然后,您可以通过执行git checkout abc123
。
git bisect
,可以解决您的问题。
修改强>:
(A)如果要保留提交历史记录,则应使用
创建修补程序 git format-patch branch1..branch2 --stdout > my_patch.patch
这将包含branch1
和branch2
之间所有更改的补丁。然后用
git am < my_patch.patch
(B)如果你只是想要改变,没有提交,
git diff branch1..branch2 > my_patch..patch
然后
git apply < my_patch