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

2023-12-03

免责声明:我已经使用 Git 一段时间了,但仍然觉得它令人困惑。

我正在为一个项目设置构建过程,但在更新 git 存储库时遇到问题。

  1. 我在服务器上创建了存储库,假设为 C:\MyProject。
  2. 我使用 SourceTree 将我的计算机连接到存储库。拉一下并获取我的所有代码,到目前为止一切都很好。
  3. 我去进行提交,但收到一条错误消息:“拒绝更新签出的分支...默认情况下,更新非裸存储库中的当前分支被拒绝”
  4. 使用 Google 一下,我意识到服务器上的 git 存储库不应该签出 master,因此我使用 Git GUI 签出,并使用“从本地分支分离”选项。这会将服务器上的分支设置为 HEAD。

现在是我感到困惑的部分(让我知道我之前是否真的感到困惑并且只是不知道)。更新服务器上的代码的推荐方法是什么?如果我在 Git GUI 中打开服务器存储库,则无法执行提取操作。似乎有效的是如果我结帐master,但这实际上是推荐的吗?如果是,那么这意味着我必须在每次更新后签出不同的分支,以便我可以继续在我的工作计算机上进行推送。


最佳实践是推送到裸仓库: see "git 中裸共享存储库的概念" and 关于“裸”存储库——什么、为什么以及如何修复非裸推送.

这意味着在您的服务器上,您需要:

  • 创建一个 Git 存储库(您已经这样做了)
  • 将该存储库克隆为裸存储库(git clone --bare yourProjectFolder yourProjectFolder.git)
    (the .git扩展名是裸存储库根文件夹的命名约定)
  • 而是推送到那个裸仓库:
    转到您的本地存储库,然后输入:

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

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

更多信息请访问 ”远程nodejs服务器部署永远".

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git 工作流程 - 设置构建流程 的相关文章

随机推荐