如何将 git bare repo HEAD 与其工作树位置进行比较

Posted

技术标签:

【中文标题】如何将 git bare repo HEAD 与其工作树位置进行比较【英文标题】:How can I compare a git bare repo HEAD to its work tree location 【发布时间】:2015-08-26 11:37:52 【问题描述】:

我在我的服务器 (/var/project.git) 上设置了一个用于部署的裸存储库。此 repo 具有将代码推送到工作树位置文件夹 (/opt/api/project) 的挂钩

现在,我们已经着手对 /opt/api/project 中的一些文件进行了一些更改,但不确定需要在开发环境中进行哪些确切更改。

/opt/api/project/git 状态 不是 git 存储库

/var/project.git/git 状态 致命:此操作必须在工作树中运行

如何将磁盘上的文件与分支进行比较?

【问题讨论】:

目前还不清楚你的设置是什么,特别是“将代码推送到工作树位置文件夹的挂钩”到底在做什么,以及这句话中的“工作树”是否真正意味着什么它通常意味着 git 术语。从您发布的状态输出来看,您似乎不是通常 git 意义上的“推送”提交,因为目标不是 git 存储库。有了给定的信息,任何人都不太可能帮助您。 尝试猜测一下,您也许可以使用git --git-dir=/var/project.git --work-dir=/opt/api/project status 查看状态。如果这可行,您可能希望更改设置以更方便地使用。 【参考方案1】:

我会以通常的方式使用 git:

使用git clone 将 git 存储库克隆到 /var/ 中的 new 目录 将更改的源复制到新目录/本地存储库

这样,您将拥有一个正常存储库,您可以使用git diff 进行比较,git commit 提交或git push 推送到裸存储库.

【讨论】:

以上是关于如何将 git bare repo HEAD 与其工作树位置进行比较的主要内容,如果未能解决你的问题,请参考以下文章

整体迁移git

git仓库类型介绍

git 远程仓库clone问题

git 裸库

服务器上搭建使用SSH账户登录的Git仓库

git 选项 --bare 的使用