[英]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.