Git工作流程 - 设置构建过程

时间:2014-10-31 23:09:40

标签: git build-process

免责声明:我一直在使用Git,但仍然觉得它很混乱。

我正在为项目设置构建过程,并且遇到了更新git存储库的问题。

  1. 我在服务器上创建了存储库,比如C:\ MyProject。
  2. 我使用SourceTree将计算机连接到存储库。拉一下,得到我所有的代码,到目前为止一切都很棒。
  3. 我去做提交,但得到一个错误说:“拒绝更新签出的分支...默认情况下,更新非裸存储库中的当前分支被拒绝”
  4. 稍微使用Google,我意识到服务器上的git存储库不应该检出master,所以我使用“从本地分支分离”选项使用Git GUI checkout。这会将服务器上的分支设置为HEAD。
  5. 现在是我感到困惑的部分(让我知道我之前是否真的感到困惑,只是不知道它)。有关更新服务器代码的建议方法是什么?如果我在Git GUI中打开服务器存储库,则无法进行提取。似乎有用的是如果我结账主人,但实际上是什么建议?如果是,那就意味着我必须在每次更新后签出一个不同的分支,以便我可以继续推动我的工作计算机。

1 个答案:

答案 0 :(得分:4)

push to a bare repo是最佳做法:请参阅“concept of bare shared repository in git”和all about "bare" repos -- what, why, and how to fix a non-bare push

在您的服务器上,您需要:

  • 创建一个Git仓库(你已经做过)
  • 克隆回购裸仓(git clone --bare yourProjectFolder yourProjectFolder.git
    .git扩展是裸存储根文件夹的命名约定)
  • 推送到那个裸仓库:
    转到您当地的仓库,然后输入:

    git remote set-url origin /url/repo/repo/yourProjectFolder.git
    
  • 在裸仓库中添加一个钩子(在服务器上,yourProjectFolder.git/hooks/post-receive),你在其中

    • 更改目录(到您的非裸仓库文件夹yourProjectFolder
    • unset GIT_DIR
    • git pull ../yourProjectFolder.git

点击“Remote nodejs server deployment with forever”了解更多信息。