问题标签 [git-bare]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
578 浏览

git - 使用 git 拥有一个远程测试存储库

在我目前的设置中,我的开发服务器有一堆裸 git 存储库,我和其他一些用户从中推送。但是,现在,我想在服务器本身上集成 PHPUnit 测试。

我最初的想法是在每个 repo 中都有一个名为 的子目录tests,然后让VisualPHPUnit之类的东西运行测试,这样我就可以通过服务器的“网站”查看结果。但是,由于远程存储库是裸露的,我不能完全告诉 VPHPU 去寻找测试目录——因为它们实际上并不存在。

有没有更好的做事方式?我在想也许有另一个存储库,其中包含所有项目的测试,只是让它不是裸露的——但这违反了 git 标准并且可能会破坏东西。

0 投票
2 回答
405 浏览

git - 裸存储库上的 Git 邮件映射

我在我的 git 存储库中设置了一个 .mailmap 文件,所以现在正在运行

在我的本地存储库中正确映射 .mailmap 文件中指定的所有电子邮件地址。但是在我推送到我的裸仓库并在服务器上运行相同的命令后,输出没有改变(.mailmap 文件被忽略)。我确定这是因为裸存储库没有工作树,因此 log 命令看不到 .mailmap 文件。有什么棘手的方法可以让它工作吗?

我能想到的笨拙方式是运行:

然后应用某种查找和替换操作。这是最好的选择吗?

0 投票
4 回答
10886 浏览

git - 推送分支和标签时,出现错误:无法生成 git:没有这样的文件或目录

我有一个现有的、裸露的 Git 存储库,它是通过从 CVS 导入我们的源代码和历史记录而创建的。我制作了一面镜子,使用:

然后,我想将所有分支和标签推送到我们内部的 Git 存储库主机,但推送似乎没有将裸存储库视为 Git 存储库.

我尝试了以下方法:

这导致:

或者我尝试:

“无法生成 git”是什么意思?

如何将包含所有分支的裸仓库推送到现有的空仓库?

我搜索了几种可能性并查看了几个 SO 问题,但我没有看到解决此问题的方法。显然,我对这个过程的理解是有缺陷的。

更新

我想我的理解没有缺陷。该错误以某种方式误导我认为裸存储库有问题,因为我可以从“常规”克隆中克隆并逐个分支推送。

事实证明,这是 MSysGit 中的一个错误。我搬到 Linux 是因为保留所有历史记录是我的要求。我不能简单地删除分支和标签,因为它们需要被推送到空的远程仓库。因此,以下确实有效:

0 投票
3 回答
146 浏览

git - 复制 Git 裸仓库会更改日志吗?

我想用 git 尝试一些东西,我不想在工作存储库中搞砸任何事情。

为了保证事情的安全,我制作了一份我从这个仓库工作的裸仓库的副本,我打算做我所有的推送和标记。我用了:

尽管我知道可以撤消错误的提交和诸如此类的东西,但我不想将所有这些还原的提交留在仓库中,也不想进行任何重构,因此我希望只从一个重复的、裸露的仓库中工作。

问题是,我执行以下操作:

然后回来:

我不想接触的原始仓库确实有 5 天前修改过的文件。

如果我git log在复制的 repo 上执行,这些 5 天前的更改记录都还在。

这里发生了什么?

有没有更好的方法来制作存储库的独立副本?

更新 1

我意识到我的问题不准确。我跑过:

在产生的目录中:

0 投票
2 回答
1229 浏览

git - 验证裸 Git 存储库是否有数据

如何验证文件是否正确推送到裸存储库?由于裸存储库没有工作树,因此您显然不能做简单的事情,git log因为它没有作为 git 存储库被拾取。

我意识到这里有建议的解决方案,但我想知道如何使用命令行进行操作。

0 投票
2 回答
3973 浏览

git - Git 裸存储库已签出主分支?

我很确定以前有人问过这个问题,但我似乎没有找到它。很抱歉,如果它是重复的。

我有一个裸存储库,可以将其称为 project_x.git,如果我们检查它说的配置文件

所以它肯定是正确的,bare = true。现在我正在尝试用清理版本替换 master 。

我正在使用 gitblit 顺便说一句,这不是实际的服务器 url。

这个回复让我很困惑,我怎么能在我的裸仓库上有一个结帐分支?谁在那个分支上工作:),没有意义。要么配置明智,要么 gitblit 惹恼了我。我不明白?

怎么了?

顺便说一句,如果我尝试相同的消息

编辑:这可行,但您不能像我之前尝试的那样删除分支。

谢谢

0 投票
1 回答
566 浏览

git - 生产服务器上的 git repo:设置裸存储库后的步骤是什么?

我已经在我的 EC2 实例上创建了一个裸 git 存储库,并且我已经将一个分支从我的开发机器推送到它。我现在可以git log在服务器上运行,它看起来是最新的。

开发机器现在有两个遥控器,一个“来源”是代码所在的 Bitbucket.org 存储库,第二个“ec2”是我为了部署代码而推送到的遥控器。看起来每当我推送到“ec2”时,它基本上都会将 repo 与我从 Bitbucket 抓取的任何内容同步。这很好,尽管在我的脑海里,我想知道我必须做些什么不同的事情来构建一个没有中间内容的不同历史。(不重要。)

但是在服务器上,repo 是一个裸 repo,没有工作树。

让服务器自动部署 webapp 的正确方法是什么?

我希望有人帮我比较和对比这两种方法:

或者,我认为建立一个单独的 git repo 是有意义的,即

哦,还有,有什么作用git checkout -f?强制覆盖结帐最新的按时间顺序提交?我认为有一些隐含的东西我不确定。我猜一个push操作必须“附加”到某个提交,这将是有问题的提交。

0 投票
1 回答
1620 浏览

git - 远程存储库中的 Git 子模块

我很难理解子模块是如何工作的。

我有一个远程存储库PARENT和一个远程存储库CHILD。我想让存储库CHILD成为存储库PARENT的子模块,所以当我签​​出PARENT时,CHILD也会被签出(进入PARENT的子文件夹)。所以我的第一次尝试是将PARENT设置为裸存储库。但是当我想添加子模块时:

因此,我将PARENT 设为具有适当工作树的非裸存储库(即使我真的不需要该存储库中的工作树)。添加子模块很顺利。将PARENT克隆到本地存储库也很顺利,并且CHILD已按预期作为子文件夹检出。然后,当我想再次将本地存储库中的更改推送回PARENT时:

所以我不能在我的裸存储库中使用子模块,因为它有一个工作树,但是当我使用非裸存储库时,我不能签入,因为它有一个工作树?我在这里不明白什么?

0 投票
1 回答
648 浏览

git - 从裸远程仓库克隆时缺少提交

我有一个小型 PHP 库,我编写它来支持各种 Web 项目。这些项目都在 git 中,库是每个 repos 的子模块。Web 项目使用 git push 部署,部署脚本需要访问库子模块 repo 以更新库。

有时对于任何给定的项目,库都会有自己的分支,直到我将这些更改合并回主分支。

我已经为该库设置了一个裸远程仓库,并且能够将库子模块推送到远程仓库。这很好,我可以在远程仓库中看到这些提交。但是,当我尝试部署时,找不到这些提交。事实上,如果我自己克隆远程仓库,我找不到那些提交。

例如,远程仓库如下所示:-

但是,如果我按如下方式克隆远程仓库:-

克隆的仓库看起来像:-

如果我这样做git pullAlready up-to-date.

为什么当我克隆时,我最终会提交 07260c9,而不是提交 9c9b880,为什么不拉下那些后来的提交?我是否遗漏了有关远程裸仓库应该如何工作的信息,或者我应该以不同的方式推送到裸仓库?

0 投票
2 回答
4467 浏览

git - 如何将现有的 Git 存储库克隆到远程 Gitolite 服务器?

我在远程机器上使用 Gitolite 来访问我的存储库。

远程 -> 本地

通常一切正常:我在远程机器上创建一个新的存储库,将其克隆到我的本地机器并开始工作。

本地 -> 远程

现在我有一个不在远程机器上的本地存储库。我可以使用 Gitolite 在远程机器上设置一个新的空存储库,conf/gitolite.conf在特殊的gitolite-admin项目中进行编辑。当我将配置推送到远程机器时,Gitolite 会自动创建新的裸存储库。

现在我尝试使用以下命令一次将现有存储库从本地计算机克隆到远程计算机。

这失败并显示以下错误消息:

我应该如何与 Gitolite 合作?由于它会自动为我创建新的空裸存储库,因此也应该有一种从本地计算机开始的方法......