簡體   English   中英

Git 在沒有 .git 目錄的情況下復制存儲庫時,也會復制歷史記錄

[英]Git history is copied too when a repository is copied without the .git directory

我正在嘗試將公共 git 存儲庫(我們稱之為 repo_A)中的所有文件復制到一個全新的私有 git 存儲庫(我們稱之為 repo_B)中。
據我所知, git init --template不適合這種需要。 我目前運行這組終端命令:

git clone repo_A_clone_link  
git clone repo_B_clone_link
cp -a ./repo_B/.git/. ./repo_A/.git/  
cp -a ./repo_A/. ./repo_B/   
cd ./repo_B 
git push

推送成功,我在 repo_B 的 master 分支中看到了 repo_A 的所有文件。
問題是出於某種原因,我仍然在 repo_B 中看到 repo_A 的提交歷史。

我試着閱讀這個主題並進行調查,但根據這個問題,repo_B 的.git目錄沒有改變的事實似乎意味着它的歷史也不會改變。

還經歷了這個問題那個問題和其他幾個問題。

我在這里錯過了什么? 我怎樣才能防止歷史也被復制?
我看到使用--depth 1可能會解決它,但我很想從.git目錄的角度了解我缺少的內容。
謝謝!

在這種情況下,您確實使用cp -a操作復制了.git目錄。 .git目錄包含存儲庫中的所有歷史記錄和對象,如果將它從一個存儲庫復制到另一個存儲庫,所有歷史記錄也將被復制。

如果你只想復制跟蹤的文件,你可以使用這樣的東西:

(cd repoA && git archive --format=tar HEAD) | (cd repoB && tar -xvf -)

暫無
暫無

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

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