2012-05-29 31 views
1

我在我的「DEV」機器上有一個git倉庫。前一段時間,我將一些代碼複製到我的PROD機器上。從那以後,在我的DEV機器中有很多提交。然而,在我的PROD機器上可能會發生一些從未提交或「Brached」的ad-hock代碼更改。如何將代碼與Git commit進行匹配,並創建分支?

問題:如何在DEV上找到最接近代碼的提交?

然後我會創建一個分支併合並。目標是將全部合併到1個分支中。 PROD上有許多文件從未被修改,因此可能會更容易,只需搜索所有提交的完全匹配。

我使用git-extensions。

ty。

回答

1

一個選項是使用git bisect來搜索您的舊提交,每一步都使用目錄diff工具來比較git工作目錄和PROD。如果工作目錄自您要保留PROD以來有新更改,請將其標記爲good。如果工作目錄包含舊版本的文件,而您想要使用PROD版本,請將其標記爲bad。最終你應該找到最接近PROD開始的提交 - 從那裏創建一個分支,從PROD複製並且你很好去。

0

沒有其他信息(並且假設您的PROD機器的安裝不是git存儲庫本身,這會使其非常簡單),我可能會將文件創建時間戳與DEV回購的提交歷史進行比較。推測你的PROD機器的代碼被複制到一個狹窄的窗口中。當你在做這個副本的時候,你也可能沒有提交。只需使用git log複製時間戳之前右邊找到的提交時間戳,則是這樣的:

git checkout -B new_branch <hash_of_that_commit> # Checks out 'new_branch' at that commit 

接下來,DIFF DEV和PROD,複製PROD變回DEV上逐漸要麼或作爲批次。提交每個增量或批次。

在這一點上,你有一個可行的主題分支。您可以在閒暇時將它合併或重新放回主分支。