近3年来,我们一直在开发一个托管在&&
上的git仓库。现在我必须将文件传输到我的客户端git repo,即ssh://me@foo.com:40000/myproject.git
。
然后开发人员需要开始工作转移回购,这是bitbucket。
所以我有两个问题,在回购之间转移代码的最佳方法是什么?
那么开发人员开始处理新回购的最佳方式是什么?是否可以只更改remote-url?该项目非常庞大,我希望避免开发人员花一整天时间来构建项目,配置等等。
谢谢。
答案 0 :(得分:1)
是的,可以编辑远程URL。这取决于你的git-client,但是在没有GUI的git层,只需查看.git/config
文件,你就会在那里找到所有遥控器的定义。
[core]
bare = false
(.....)
[user]
name = you
email = your@email.com
[remote "origin"] #<---- here ya go '1
url = ssh://me@foo.com:40000/myproject.git #<--- here ya go '2
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
所以,你可以改变它,压缩.git
,把它交给另一个开发者,然后他就可以了。呸。不要这样做,除非你是空白。
那是因为手动完成这一切并没有多大意义。 Git可以轻松处理多个遥控器,您可以push
为您初始化新的远程仓库,clone
可以让开发人员工作。可能会更多方便您(至少暂时)保持两个遥控器配置。
假设您已经拥有传统的origin
,只需使用新名称添加新文件:
git remote add newrepo ssh://git@bitbucket.bar.com:7999/w3/myproject.git
之后..只需按
git push newrepo master
或
git push --all
git push --tags
... etc
之后,新回购将包含&#34;所有内容&#34; (=取决于您推送的内容),新开发人员可以简单clone/pull
来自新的开发人员,忽略旧版本。
由于您正在进行正常推送,因此new-repo也会获得完整历史记录。如果你不想要那个,你需要先修剪它(壁球等)。
答案 1 :(得分:0)
由于通常git克隆整个存储库,除了克隆之外,你真的不需要做太多事情 开发人员只需更改其“来源”的URL或以不同的名称克隆新URL,并记得推送到那里 我个人会删除远程原点,然后添加远程原点。
答案 2 :(得分:0)
$ git remote add <new_origin_name> <new_origin_url>
是命令。在这里,new_origin_name可以是除了您给旧远程仓库提供的名称之外的其他名称。然后强制推送到新的仓库:
$ git push --force <new_origin_name>
如果--force太强,您可以使用--force-with-lease。您的其他开发人员需要完全相同(当然,除了使用--force选项之外!)。
对于Bitbucket(在Windows / Mac上),每个人使用Atlassian软件sourcetree可能并不是一个坏主意,它可以帮助人们在GUI上完成所有这些工作。