將Git工程提交到兩個不同的倉庫
阿新 • • 發佈:2019-01-24
使用場景:
- 備份程式碼
- 在使用新的程式碼管理倉庫的過渡過程中,我們並不想直接扔掉原有程式碼管理倉庫,同時又不想維護兩套程式碼(我遇到的場景是從Gerrit遷移到GitLab過程中)
有兩種配置方式,直接看配置檔案
- 修改專案.git檔案下的config檔案(提交到兩個倉庫的相同分支)
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin" ]
url = ssh://gradle倉庫地址
url = http://gitlab倉庫地址
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
- 修改專案.git檔案下的config檔案(提交到兩個倉庫的不同分支)
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "gradle"]
url = ssh://gradle倉庫地址
fetch = +refs/heads/*:refs/remotes/gradle/*
[remote "gitlab"]
url = http://gitlab倉庫地址
fetch = +refs/heads/*:refs/remotes/gitlab/*
[branch "master"]
remote = origin
merge = refs/heads/master
[alias]
publish=!sh -c \"git push gradle master && git push gitlab master:master\"
在沒有特別要求時第一種配置方式更簡潔。前提是在備份倉庫建立同名的分支。
Tips:
在多人開發時,使用多個倉庫提交的操作最好由特定一人合併程式碼進行提交,備份倉庫的工程儘量避免被多個人同時修改