是的,可以編輯遠程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