是的,可以编辑远程URL。它取决于你的git-client,但是在一个没有GUI的git层上,只要看看.git/config
文件,你会发现所有remotes的定义。
[core]
bare = false
(.....)
[user]
name = you
email = [email protected]
[remote "origin"] #<---- here ya go '1
url = ssh://[email protected]: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://[email protected]:7999/w3/myproject.git
后..只是推
git push newrepo master
或
git push --all
git push --tags
... etc
之后,新回购将包含来自源头的“一切”(=取决于你所推荐的内容)一个,新的开发者可以简单地从这个新的开发者clone/pull
,忽略旧的。
由于您正在进行正常推送,新回购也将获得完整历史记录。如果你不想这样做,你需要先修剪它(压扁等)。
如果我不能'git remote add newrepo',因为它已经存在并且有一些旧的代码在里面。 – DarthVader
@DarthVader:你的新版本库包含一些旧的代码?有点奇特,不是吗?无论如何,假设你想删除旧的代码并用最新的代码替换它 - 首先清理新的repo:删除除master之外的所有分支(因为你可能无法删除'master' beucase,可能它是默认的分支在服务器的裸回购),然后强制推送一个孤立的空提交到'master'分支。之后,您的新回购将完全是空的,并准备好接收从您的实际源回购推送的内容。 – quetzalcoatl