1. 程式人生 > >將Git工程提交到兩個不同的倉庫

將Git工程提交到兩個不同的倉庫

使用場景:

  • 備份程式碼
  • 在使用新的程式碼管理倉庫的過渡過程中,我們並不想直接扔掉原有程式碼管理倉庫,同時又不想維護兩套程式碼(我遇到的場景是從Gerrit遷移到GitLab過程中)

有兩種配置方式,直接看配置檔案

  1. 修改專案.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
  1. 修改專案.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:
在多人開發時,使用多個倉庫提交的操作最好由特定一人合併程式碼進行提交,備份倉庫的工程儘量避免被多個人同時修改