[英]Pushing files from one Git repository to another
我有2個基本相同結構的Git存儲庫,但存儲庫B只有存儲庫A的一些內容。
存儲庫A有更新的提交,我需要推送到B(但只有必要的文件)。
到目前為止,我已經將存儲庫克隆到我的本地工作站。 如何用存儲庫A中的文件替換存儲庫B中的必要文件?
我天真的嘗試是git mv /A/source/* /B/source/
導致:
fatal: /B/source/: '/B/source/' is outside repository
由於我對git很新,我不能100%確定我應該嘗試實現的目標。 我將嘗試解釋上下文:我們在存儲庫A中進行了積極的開發。存儲庫B目前用於訪問部分內容的第三方(它們只需要部分內容)。 存儲庫A的版本為1.6,B的版本為1.4。 所以我的目標是將必要的新內容推送到B.我想這將是在1.5和1.6到B期間對A做出的提交?
我認為,最可靠的方法是自己轉移實際的提交。 使用git format-patch
從A
提取不在B
上的提交,反之亦然,並將它們寫入.patch
文件。
然后,在另一個repo中,使用git apply
將.patch
文件提交應用於該repo。 如果有沖突,您將有機會解決它們。
這基本上與“cherry-picking”提交相同,但是跨存儲庫而不是跨分支。
(你也可以使用git am
而不是git apply
,它只是有點不同。)
我們最終做的是:
git rm /B/<files_to_replace>
cp /A/<necessary_files> /B/
git add ...
這可能不是正確的方法,但我們有點匆忙,它現在將完成工作。 謝謝您的幫助! :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.