簡體   English   中英

我如何合並/重新設置文件夾中的分支

[英]How do i merge/rebase branch that is in a folder

我有一個主分支。 從 main 我創建了一個分支 A。我切換到該分支並從 github 克隆一個 repo。 現在分支 A 上有一個帶有 repo 的文件夾。

問題是,在分支 A 上,我看不到克隆 repo 的提交歷史記錄,除非我 cd 在克隆的 repo 文件夾中。 cd 之后我可以看到歷史,但這是一個完全不同的分支。 我還需要創建拉取請求,但我不能這樣做,因為 GitHub 說there is nothing to compare, branches have entirely different commit histories

我可以以某種方式將文件夾中的分支合並/變基到主/其他分支嗎?

如果我理解正確,您有兩個完全獨立的存儲庫,並且您希望合並它們,同時保留兩個提交歷史。 這個對嗎? 這有點棘手,但可行。

因此,您擁有主存儲庫 (A),並希望包含位於 (A) 的子文件夾中的另一個完全獨立的存儲庫 (B) 的全部歷史記錄。
(無論我在哪里使用 (A) 或 (B),您都應該將其替換為不帶括號的實際存儲庫名稱。)

兩個存儲庫都認為他們的文件位於工作目錄的根目錄下。 他們不在乎那些在你電腦上的位置。 因此,您不能簡單地將其推送到目錄中並將這兩者結合起來。

但是,您可以先簽出 (B),將所有內容移動到子文件夾中,然后提交。

然后,轉到 (A),將 (B) 添加為遠程 ( git remote add (B) path/to/(B) ) 並像這樣合並它們:

git fetch (B)
git merge (B)/main --allow-unrelated-histories

--allow-unrelated-histories參數非常重要,因此 Git 知道,您有意合並這些單獨的存儲庫。

如果您有沖突(兩個存儲庫中都存在的文件),您應該能夠手動合並它們並在之后提交它,就像任何其他 git 沖突一樣。

現在您的 (A) 存儲庫中有 (B) 的子文件夾,您可以根據需要提交、修改和推送。

暫無
暫無

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

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