我是git的新手,我正在努力了解它是否可以解决我的问题。
项目有一个公共只读svn repo。我希望随着时间的推移制作并跟踪我自己对其来源的更改。虽然仍然从svn repo获取更改。当然,我可以使用git-svn
轻松完成此操作。我只是从不执行dcommit
。
增加的问题是我在多个地方工作。因此,我使用远程仓库在这些位置之间同步文件。这也是我可以用git轻松完成的另一件事,使用远程git repo。
但把它们放在一起,我有:
使用git这是一个合理的工作流程吗?随着时间的推移,我自己的更改/提交将与svn repo的更新交织。如果是这样,我应该如何设置它。
意思是,我是否应该以完全分散的方式直接从远程svn获取每个工作位置的本地git。或者我应该让我的方式让单个远程git repo执行svn获取本身。为了使各种本地gits更容易协调来自svn的更改,即使它们看起来像是来自远程git repo的更改。
如果需要,我只能在远程git repo主机上运行git-svn
。
答案 0 :(得分:1)
Git可以很容易地做到这一点。
试试这个:
git svn clone svn-url
负责从远程svn获取。然后你可以随意使用git和分支等,并继续git svn拉动master,将更改合并到你的开发分支等。我倾向于使用一个单独的存储库,然后执行此操作:
git remote add svn /path/to/git/repo/cloned/from/svn
从svn clone拉入我的开发库。这只是个人偏好,但它保持我的“导入”存储库清洁,我的开发存储库只是认为它是上游代码库。我也可以这样从其他git存储库中提取;我不知道在git-svn存储库之上这样做是因为我从未亲自回复svn ...那么你可以
git remote add server remote-repo
git push server {branch}
按照正常情况。
答案 1 :(得分:1)
如果您可以在远程服务器上运行git-svn
,我会选择以下设置:
git-svn
跟踪删除svn(f.e。upstream
)。如果你无法在远程服务器上运行git-svn
我会做的非常相似,但让远程服务器拉动svn更改会更好,因为你不需要担心它。 / p>