问题标签 [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 回答
6047 浏览

git - 有 git 活动日志吗?

这里出了点问题。请允许我介绍一下背景。

今天,我尝试推送到我们公司默认的裸 msysgit windows 服务器,并得到一个可怕的错误消息,在 SO 中到处重复关于推送到 non-bare 的信息。我认为这个消息很奇怪,因为我的服务器应该是光秃秃的。昨天它工作得很好。

然后我注意到core.bare,不知何故,设置为false!这是一个 repo --bare,它从来没有一个 " .git" 文件夹。然后我去检查,那里有一个 .git 文件夹,对我来说突然出现,令我沮丧!我问唯一一个可以在那里做某事的人,当然,他没有。

编辑:我只是注意到它只发生在master分支上,并且服务器.git似乎是在 10 月 1 日创建的,这可能是正确的,因为我不master经常推送。

该文件夹有 3gb,而裸文件夹,除了 ghostly 之外的所有 git 结构.git,有 6gb。虽然我的本地 .git 有 16 GB,所以我不确定那里发生了什么......更重要的是,我无法检查git loggit reflog. 将 bare 设置为 true 或 false 我得到同样的错误fatal: bad default revision 'HEAD'。现在我认为是时候考虑如何恢复回购了......

但在我了解所有恢复教条之前,我想知道:

  • 是否有某种git 活动日志,以便我可以看到在 git 中发出的所有命令,以及由谁发出的?

找不到类似的东西,我担心没有。

0 投票
2 回答
3096 浏览

eclipse - 带有eclipse项目的git服务器

我有一台运行 Ubuntu Server 的计算机。在这台计算机上,我有一个名为 mattgit 的用户。
我有另一台运行 Windows 7 的计算机。我在这台计算机上使用 Eclipse 开发 Java 应用程序。

在我的服务器上,我运行了“git init --shared --bare”来为 Eclipse 项目创建一个中央存储库。我为我的 Eclipse 工作区中的每个项目都做了一次,每个项目都在一个单独的文件夹中。

我希望我的 Win7 机器上的 Eclipse 工作区中的每个项目都充当/成为/无论术语是 git 存储库。然后我希望能够将这些文件推送回我服务器上的中央存储库。我该怎么做呢?

我尝试将(最初为空的)中央存储库克隆到我的 Win7 机器到我的 Eclipse 工作区中的一个文件夹,然后在其中创建一个项目,但 Eclipse 拒绝创建它,因为它说目录不为空。

我还尝试在我的工作区中使用 Eclipse 创建项目,然后将存储库克隆到该文件夹​​中,但显然我也不允许这样做。

我试过使用 SmartGit 和 Git 二进制文件,但我越来越困惑。

编辑:请假设我对我需要做什么一无所知。我需要分步说明。

0 投票
3 回答
151 浏览

git - Git远程仓库中的项目文件在哪里?

我开始使用 Git 和我的项目 VCS。我创建了一个远程仓库使用

在 /codes-repo 并将更改从本地 repo 推送到那里。然后我想将项目文件从那里移动到 /var/www/project 以供 http://.... 访问。但我在 /codes-repo 没有看到任何项目文件(index.php、css/、....)来复制它们,那里只有 git 文件和文件夹。他们在哪里??

0 投票
1 回答
774 浏览

git - Git:从裸机或非裸机导入

我一直在我的家庭本地服务器(Mac Mini)中托管裸存储库。

它的执行速度非常慢(可能是由于缺乏对大文件的 git 优化)

所以为了解决这个问题,我正在考虑将我的裸仓库移动到 BitBucket 私有仓库。只是为了试一试。

当我尝试从我的裸存储库导入 bitbucket 时。它有很多问题,比如它只导入我的暂存分支。

当我这样做的时候

在 git bare repo 目录上,它只在我的分支列表中显示我的暂存。然后我做git fsck --full。它显示了许多与包相关的错误。另一个问题是,在 git bare repo 目录中,我发现了另一个与 repo 目录本身同名的文件夹。例如:我的 repo 目录名称是 repo.git/。这继续 repo.git/repo.git/repo.git/repo.git。

从这些问题来看,我认为我把我的裸存储库搞砸了。所以我正在考虑删除这个裸存储库并从我的正常/非裸存储库中导入到 bitbucket。

所以我的问题是:从裸存储库导入和从非裸存储库导入有什么区别,即使是很小的区别?

先感谢您。

0 投票
1 回答
356 浏览

git - 使用内网服务器作为网关和代理镜像来访问公共远程

背景:

我们有一个有趣的问题。我们正在尝试从公共可访问位置将 git 存储库获取到我们的开发服务器(服务器),该服务器具有连接到公司网络和公共互联网的互联网。

然后,在我们的公司网络中,我们有一些开发框(客户端),它们只能访问开发服务器。定期地,我们想从

公共互联网 -> 服务器 -> 客户端。

我们现在做的是从公共互联网在服务器上进行 git clone,然后在客户端从服务器上进行 git clone。问题是如果服务器没有在本地跟踪远程分支,客户端将无法获取新分支。

问题:服务器中的 git clone --bare 是否允许我们在客户端获取更改而无需在服务器中创建本地跟踪分支?我们还能做什么?

提前致谢。

0 投票
1 回答
258 浏览

git - git - 共享存储库 sgid

我正在使用一个bare sharedRepository来允许一组开发人员推送。

为了保持良好的文件组推送,我更改了 SGIDobjects

如果这确实是正确的方法,我应该更改任何其他目录的 SGID ( branches, refs, ...) 吗?

0 投票
1 回答
848 浏览

git - 使用 git 管理生产网站?

我在生产服务器上有一个包含大约 15,000 个文件的网站。一位远程开发人员现在正在网站上完成大部分工作,但我偶尔也需要进行一些编辑。很明显,我们需要一些版本控制,所以我正在尝试设置 git。

我真的很想保持设置简单明了。我们不需要任何类型的集成商来查看我们的更改 - 我们都完全信任将更改推送到生产站点。我也认为没有必要在使它们生效之前将更改推送到登台服务器,因为我们无法在本地机器上测试任何我们无法测试的东西。我基本上只是想要一些可以防止我们破坏彼此文件的东西。这是我想到的场景:

问题:

  1. 这个工作流程对于两个开发人员(其中一个只偶尔进行编辑)的团队有意义还是有更好的?

  2. 在开发人员和生产服务器之间添加临时服务器有什么好处吗?

  3. 我假设生产服务器应该是一个裸仓库,带有一个指向 webroot 文件夹的 post-receive 钩子,我们会将副本克隆到每个开发人员的机器上,然后 git commit / git push 将任何更改启动回生产?

  4. 有什么简单的方法可以在生产服务器上创建一个裸仓库,然后将站点现有的 15,000 个文件添加到其中?还是我必须将它们下载到本地工作站上的克隆存储库,然后执行 git add / commit / push 以将它们加载到生产服务器存储库中?(他们可能需要将近 13 个小时才能上传。)

谢谢!

0 投票
2 回答
291 浏览

git - 如何在远程机器(而不是本地)上使用 Git 接收后挂钩?

我们正在使用 Windows 开发服务器来托管我的 Git 裸仓库。我们使用对服务器的直接文件访问(无 SSH、GIT 或 HTTP)。这很好,团队很高兴。

我们现在尝试让开发服务器在每次有人在裸仓库中推送代码时执行部署操作。我们在服务器上创建了一个本地仓库,并将裸仓库添加为远程仓库。

我们发现在 post-receive 挂钩中使用本地路径根本不起作用。post-receive 钩子似乎在客户端系统上搜索文件夹,而不是在服务器本身上。当我们在服务器上使用 //server/c$/[path] (以及服务器本地 repo 的远程设置)时,一切似乎都可以正常工作 - 但速度很慢。它现在开始让我们发疯,所以我们现在停止使用它:(。

简而言之,我们的问题是:

  1. post-receive 是否具有客户端本地范围?
  2. 如果 1 为真:是否可以让 post-receive 在服务器范围内运行?
  3. 是否有人成功使用了上述机制?

非常感谢你的帮助!

0 投票
1 回答
189 浏览

git - Git - 裸存储库不是最新的

好的,我再次尝试描述我的问题。首先让我说我是 Git 的初学者。我已经阅读了很多东西,但有些地方对我来说并不清楚。

我在本地工作的工作副本。我在本地 branchx 上的头与 gitlab 上的远程 branchx 具有相同的 id。但是在 gitlabserver 上我可以看到两个分支 1.bare/branchx 2.branchx。
当我比较这两个分支时bare/branchxbranchx.

我搜索了一段时间以找到要更新的命令,bare/branchxbranchx没有找到。我怀疑出了什么问题。

另一个问题是,为什么我看到这两个分支而不是一个 - bare/branchx. 正如我所读到的,在远程服务器上只能是一个裸存储库。但是当我将数据拉到远程时,没有非裸仓库吗?当 Bare repo 没有工作树时,我的其他数据在哪里?

这么多的问题,这么多的答案和在 git 上做事的方法。我很困惑

@kan 当我输入

我明白了

所以我有一个光秃秃的主人和主人。

0 投票
1 回答
1912 浏览

git - Git Repo 自动提交和推送

我有一个场景,我有一个存储库,用户可以直接访问文件,他们不知道 git 存在,并对本质上是文本文件的内容进行更改。

我克隆了那个仓库。因此,当进行提交时,使用 post-commit 挂钩将更改推送到克隆的 repo。

现在,我将克隆的仓库作为裸仓库。但是,此时我想做的是在每次推送时运行一个脚本。该脚本将读取刚刚推送的文件的内容。这被视为提交吗?我可以再次使用提交后挂钩吗?

这可以在裸回购上完成吗?既然没有工作目录?如果回购是裸露的,我不知道如何“读取”文件。