簡體   English   中英

目錄結構更改后,如何在git中合並或變基?

[英]How to merge or rebase in git when the directory structure changed?

我事先表示歉意。 我對git很陌生,我剛剛接管了一個存儲在git中的項目。

這是我的情況-我接管的項目的目錄結構在我的組織中不是標准的。

我使用git mv創建了具有新目錄結構的新分支。 我需要將分支名稱設為標准。 已經有一個具有標准名稱但目錄結構錯誤的分支。

我正在一個名為“ develop”的分支上工作,它具有我們想要的目錄結構。 我主要了解合並,但是我還不太了解rebase。 本質上,我需要使其他非標准分支完全類似於“ develop”分支。

由於目錄結構的更改,合並將無法工作,我已經嘗試過了。

我如何簡單地使其他分支完全像“開發”?

更新:

我意識到只要不推向遙遠的地​​方,我就可以練習。

以前,我選擇了其中一個分支來更改dir結構(“ test”分支):

cd進入要移動文件的目錄

鍵入此命令(這表示您要更改的當前目錄結構)

git mv OldDir1 / OldDir2 / *。

請注意末尾的句點,在OldDir2 / *之后的空格之后

提交並推送。 注意:這將刪除每個文件的歷史記錄。

我之前也對“開發”分支做了此操作。

現在,兩個分支(開發,測試)都具有新的目錄結構。

然后:

git checkout開發git checkout測試git rebase開發

此時,它無法解析podfile和podfile.lock文件。

Sourcetree顯示出pull(2)和push(前面的提交數)。

我嘗試了幾件事,但無法讓sourcetree從開發中獲取Podfile,它一直想從測試分支中獲取Podfile。

在我解決了提到的兩個podfile的pull(2)之前,它不會推送。

我終於只拉了兩個Podfiles,即使它們已經過時了,也要提交/推送。

我將更改它們並推動。

這樣就完成了我想要的,並且我已經檢查了幾個文件中的最新更改,以確保“ test”和“ develop”是最新的。

對於定義明確,工作良好的項目,這不是您想要做的事情,但是您可以簡單地檢出master分支並將您所做的事情復制到您的“ develop”分支。

我真的不明白為什么您不能將“開發”合並到您的“主”分支中,但是如果您有合並沖突,也許可以將那些合並到“開發”分支中,以解決(可能會很多)沖突,並重新合並為母版也是一種解決方案。 您可以在本地完成所有操作,而無需將任何東西推到原點,因此只要您不推到原點,它就是“安全的”。 如果您對所需的結構有信心,請按“原點”,所做的更改將對從事該項目的其他所有人可見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM