2013-12-17 64 views
3

我從ClearCase中遷移到Git,有兩個問題:從我的團隊ClearCase的到Git遷移問題

  1. 有人推他身邊的一個分支變成「產地/ master」分支和搞砸了分公司。我有一個本地回購「主」,我想完全推它,並確切地給我的分支。我該怎麼做呢?

  2. 我在我的電腦上有兩個分支 - 我想知道他們之間的差異,並製作一個腳本,人們可以從不同的計算機運行並重新應用所有更改(刪除,插入和修改)。

  3. (評論關於2)非常重要:兩個分支都是這樣創建的: 這兩個分支 - 一個比另一個更先進 - 也就是說,它包含另一個沒有的更改,以及其他沒有第一個版本沒有的版本。

也就是說,它不是叉子。希望簡化事情。

回答

3

(1)

git push -f origin master 

-f覆蓋遠程分支與你的。

(2)

這將讓branch1branch2之間提交IDS。

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 
+0

您好,我要準備一個補丁 - 這樣來自其他分支機構的人員可以獲得我所做的更改,即使他們有不同。實際上,我想要一個腳本放入共享位置,以重新播放/重新應用我對其存儲庫所做的更改。 – user967710

+0

@ user967710,查看更新後的答案。 –

+0

謝謝。會試試這個。 – user967710