如何在git中更改分支 - 远程本地远程

时间:2012-07-05 17:08:37

标签: linux git repository hook

我正在尝试在远程--bare存储库上创建一个钩子,它将根据我发送给的分支复制我从本地git发送的源代码,位于不同的文件夹中。我在本地有3个分支:主,开发和发布所以我希望在遥控器上有3个包含每个分支的源代码的文件夹。我发现使用:

  

git rev-parse --abbrev-ref HEAD

结合一系列if条件可以解决问题。唯一的问题是,对于您发送到的任何分支,HEAD在远程上保持不变。是否有任何代码可以在钩子中使用,所以它会知道我发送到某个分支?或者还有其他方法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

你的一个裸仓库将拥有全部3个分支。您可以使用这样的git修饰符来使3个单独的目录更新为每个分支包含的内容:

git --work-tree=/some/project/dir/branch1 --git-dir=/path/to/bare/repo checkout branch1 -- .

为避免指定这些选项,您可以设置相应的环境变量:

GIT_WORK_TREE
GIT_DIR

通过这种方式,您可以保留一个裸仓库和3个单独的目录,这些目录在推送分支时会更新。记住钩子中提供的参数是什么。第一个是分支名称。