[英]Git checkout from repository on GitHub into an existing local repository based on SVN
我最近將一個項目從Subversion遷移到GitHub,但是當前工作的本地目錄仍然是SVN本地存儲庫。 由於復雜的原因,創建一個新的git clone本地存儲庫不是很好,所以有什么方法可以從GitHub檢出git存儲庫嗎?
現在它給了我錯誤:
fatal: Not a git repository (or any parent up to mount parent )
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)
顯然,因為我沒有使用git本地存儲庫。
git init
將使其成為git存儲庫。 git remote add origin <url>
,其中<url>
是來自GitHub的HTTPS或SSH路徑,將本地存儲庫連接到GitHub。 git fetch origin
將使用GitHub的所有歷史記錄更新本地Git存儲庫 git reset origin/master
會將您的本地master分支指向原始的最新master,而無需更改文件。 此時, git status
將向您顯示本地工作目錄與GitHub之間的任何區別。
聽起來你的核心問題是你試圖以這種方式保持Subversion和Git存儲庫同步,Git應該只是你的Subversion存儲庫的另一個視圖。 如果是這種情況,SubGit可能是一個解決方案:它提供了Subversion存儲庫的Git鏡像,因此你可以在你的機器上堅持使用Subversion,同時還有額外的Git存儲庫。
您不能創建git存儲庫的“ SVN簽出”。
在git中,克隆存儲庫包括其所有歷史記錄。 git工具依靠它來執行它們的功能。 在SVN中,所有歷史記錄都在服務器上,而本地端只是一個工作副本。
你將不得不做一個git clone
。 最接近SVN的工作方式是使用--depth = 1進行克隆,但結果檢查結果會非常糟糕。
如果你想要反正你所要求的 - 也就是說,你想使用帶有上游SVN存儲庫的本地git客戶端 - 答案是git-svn
。
如果你只是想減少重新下載的數量 - 你只說“復雜的原因”,所以我無法推斷你的動機 - 只保留本地文件是不夠的。 正如我所提到的,git不僅存儲文件的最新版本,還存儲每個過去的版本。 無論您做什么,都必須下載過去的版本信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.