将一个本地存储库与远程git存储库同步

时间:2017-12-06 10:03:52

标签: git version-control

我有一个git存储库,有许多人为此做出贡献。因此,每个拥有自己的存储库的用户都在其工作区中进行本地检我想再保留一个本地仓库作为查找最新代码的集中位置。所以我想拥有远程存储库的精确副本。通过它,我的意思是我的集中式仓库应该始终与远程存储库同步(24/7)。所以我正在寻找类似的东西,如果有人将新提交推送到远程仓库,我的集中仓库应该检查(git pull)最新代码,以便始终获得更新的代码。请告诉我如何实现这一目标

1 个答案:

答案 0 :(得分:0)

对于本地git repo(即使你把它当作一个集中的地方),它也无法自动与远程git repo同步。

如果远程仓库中有新的更改,有两种方法可以同步本地仓库:

选项1:计划运行脚本以不时执行git pull

脚本可以是:

#!/bin/sh

git fetch -p
for bran in $(git branch -r)
do
{
  if [[ $bran == *"origin/HEAD -> origin/"* ]]; then
  echo "this is not a branch"
  else
  {
    localb=$(echo $bran | cut -d'/' -f 2)
    echo "This is $localb branch"
    git checkout $localb
    git pull origin $localb
  }
  fi
}
done

计划运行脚本,你可以参考:

schedule running a bash shell script in windows

Running .sh every 5 minutes

选项2:使用post-receive hook更新本地仓库

使用post-receive hook,以便在将更改推送到远程repo时,然后自动执行脚本。