[英]Git and SVN and no history
我有個問題。
我將Git與SVN存儲庫一起使用。 但是有些人更改了SVN存儲庫(他們創建了一個新的存儲庫,只需將項目的所有文件都放入其中)。 他們不保存舊存儲庫的SVN歷史記錄。
我不知道如何將Git與新的SVN存儲庫掛鈎以便提交修改。
謝謝你的幫助
編輯
終於我找到了解決方案。
所以我有一個本地存儲庫Git(在我的本地目錄/ home / oldSVNrepo中),它已連接到舊的SVN存儲庫。 新舊SVN存儲庫之間沒有通用提交。
我應該做什么:
我必須在新的SVN存儲庫中提交我的修改
我所做的:
1-我創建一個本地目錄(例如mkdir / tmp / myNewRepo)2-在這個新目錄中,我克隆了新的SVN存儲庫
cd /tmp/myNewRepo git svn clone [UrlOfNewSVNrepository]/myproject -T trunk -b branches -t tags --username XXX cd myproject git checkout -b dev git checkout master
我創建一個新分支,以便合並SVN信息庫的新更新,並從遠程信息庫提交中推送。 (如果分支處於活動狀態,我們將無法進行回購)
3-在OLD SVN的本地Git存儲庫中,添加一個遠程存儲庫:新的Git存儲庫
`cd / home / oldSVNrepo git remote add neworigin -t dev / tmp / myNewRepo / myproject
4-我從遠程存儲庫中獲取數據
git fetch neworigin/dev
5-我在舊的Git存儲庫中創建了一個新分支(在提交所有修改之前)
git checkout -b branchForMerge
6-我確實在遠程neworigin和branchForMerge之間合並
git merge neworigin/dev
當我進行合並時,Git給我一個警告:沒有常見的提交。 (實際上,就我而言,我在合並之前使用git-mv,因為myproject的舊目錄與新項目目錄不同)
7-我解決沖突並提交
8-我在neworigin上進行修改
git push neworigin branchForMerge:dev
9-現在在新的Git存儲庫(/ tmp / myNewRepo)的分支開發中,我可以輕松地將修改發送到新的SVN存儲庫
因此,我只是創建了一個新的本地Git存儲庫,該存儲庫連接到新的SVN存儲庫,並在舊的Git存儲庫中添加了一個遠程分支,以便傳輸我的本地提交。 我不知道這是否是一個好的解決方案,但對我有用。
謝謝吉特
謝謝Zeeker
您可以通過編輯<repository>/.git
文件夾中的config
文件,在git存儲庫中設置第二個svn遠程。
它可能看起來像這樣(第二個是新的存儲庫):
...
[svn-remote "svn"]
url = https://url.to.the.first.svn.repository
fetch = :refs/remotes/git-svn
[svn-remote "new-svn"]
url = https://url.to.the.second.svn.repository
fetch = :refs/remotes/new-git-svn
...
您可以獲取新的存儲庫git svn fetch new-svn
; 這將導致遠程分支new-git-svn
與新存儲庫保持最新。
現在,你應該能夠輕松地rebase
你自己的修改到新的new-git-svn
,所以你可以把它們提交給信息庫。
希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.