标签: git

git clone - 失败而不是提示输入凭据

在自动化工具中克隆 git 存储库时 - Web 前端、CI 系统,有时 git clone 调用会打开一个提示,要求输入用户名和密码(例如,当克隆不存在的 Github 存储库或在缺少 ssh 密钥的新节点上时)。

如何让 git 失败(最好带有合理的错误消息和退出代码)而不是等待服务器进程为其提供用户名和密码?

automation git

21
推荐指数
1
解决办法
2万
查看次数

Gitlab 备份文件位置(Omnibus 安装)

我已经使用 omnibus 安装包安装了 Gitlab。

我使用以下命令进行了备份

sudo gitlab-rake gitlab:backup:create
Run Code Online (Sandbox Code Playgroud)

备份已成功创建。但我不确定在哪里可以找到备份文件。默认情况下,所有 Gitlab 备份都存储在哪里..?

backup git gitlab

21
推荐指数
1
解决办法
2万
查看次数

将 RSA 密钥放入 Azure Key Vault

如何将我的密钥对(通常是 id_rsa 和 id_rsa.pub)存储在 azure 密钥保管库中。我想将公钥放在我的 GIT 服务中,并允许虚拟机从 Azure 密钥保管库下载私钥 -> 以便它可以安全地访问 GIT。

我尝试制作一对 PEM 文件并将它们组合成一个 pfx 并将其作为秘密上传,但我返回的文件似乎与任一 pem 文件完全不同。

我还尝试将我的密钥手动输入 Azure,但它会将换行符转换为空格。

automation ssh git azure ssh-keys

21
推荐指数
2
解决办法
2万
查看次数

启用 nginx 分块传输编码

看起来nginx 0.8.35 可能支持分块传输编码

nginx 0.8.35 2010 年 4 月 1 日的变化

*) Change: now the charset filter runs before the SSI filter.

*) Feature: the "chunked_transfer_encoding" directive.
Run Code Online (Sandbox Code Playgroud)

这很棒,因为我正在尝试通过 nginx 反向代理将 git 更改推送到 git-http-backend 进程。出于客户端效率原因, Git HTTP 利用分块传输编码。

但是,我无法让它工作。我在 Debian Lenny 上使用 nginx 0.8.44 并使用以下配置调用:

./configure \
--sbin-path=/usr/sbin \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--user=www-data \
--group=www-data \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_realip_module
Run Code Online (Sandbox Code Playgroud)

以及以下配置文件:

server {
    server_name example.com;
    location / {
        proxy_pass  http://192.168.0.10; …
Run Code Online (Sandbox Code Playgroud)

nginx git chunked

20
推荐指数
3
解决办法
4万
查看次数

将整个 linux 服务器置于源代码控制之下 (git)

我正在考虑使用 git 将我的整个 linux 服务器置于版本控制之下。其背后的原因是这可能是检测恶意修改/rootkit 的最简单方法。我天真地认为检查系统的完整性是必要的:每周使用救援系统挂载 linux 分区,检查 git 存储库是否仍然未调整,然后发出 git status 以检测对系统所做的任何更改.

除了明显的磁盘空间浪费外,还有其他负面影响吗?

这是一个完全疯狂的想法吗?

它甚至是检查 rootkit 的安全方法,因为我很可能至少必须排除 /dev 和 /proc 吗?

security linux rootkit git

19
推荐指数
2
解决办法
4356
查看次数

如何使用 post-receive hook 设置 Gitlab?

我在一台服务器上使用 Gitlab,并希望在主分支提交时将我的 git 存储库推送到另一台网络服务器。因此,当我推送网站的新版本时,生产服务器会更新。我知道这应该可以通过 gitlab 中的钩子来实现,但我无法找到确切的方法。尝试了以下指南http://danielmiessler.com/study/git/#website但它不是为与 gitlab 一起使用而编写的,所以我缺少部分。

我需要在生产网络服务器上做什么,然后我将钩子 URL 设置为什么?

git hook gitlab

19
推荐指数
2
解决办法
4万
查看次数

跨本地网络的 Git 克隆/拉取

我正在尝试使用 Ubuntu Quantal 在另一台 PC 中克隆/拉取存储库。我之前在 Windows 上做过这个,但我不知道 ubuntu 上有什么问题。我试过这些:

git clone file:////pc-name/repo/repository.git
git clone file:////192.168.100.18/repo/repository.git
git clone file:////user:pass@pc-name/repo/repository.git
git clone smb://c-pc/repo/repository.git
git clone //192.168.100.18/repo/repository.git
Run Code Online (Sandbox Code Playgroud)

我总是得到:

Cloning into 'intranet'...
fatal: '//c-pc/repo/repository.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

或者

fatal: repository '//192.168.100.18/repo/repository.git' does not exist
Run Code Online (Sandbox Code Playgroud)

更多的:

  • 另一台电脑有用户名和密码
  • 不是网络问题,我可以访问并ping通它。
  • 我刚刚安装了git做apt-get install git(安装了依赖项)
  • 我正在从终端运行 git(我没有使用 git-shell)

是什么导致了这个以及如何解决这个问题?任何帮助都会很棒!

更新

我已经在 Windows 上克隆了 repo,git clone //192.168.100.18/repo/intranet.git没有问题。所以,repo 是可访问的并且存在!也许问题是由于用户凭据?

networking version-control git ubuntu-12.10

19
推荐指数
2
解决办法
5万
查看次数

如何卸载 gitosis?

我已经在我的 dramhost 机器上安装了 gitosis,但现在我想卸载它,因为它导致的问题多于解决方案。

问题是我找不到如何卸载它。我删除了 ~/repositories 目录,但当然所有垃圾箱仍然包括在内。另外我更担心它对 ssh 配置做了什么。

python git uninstall

18
推荐指数
1
解决办法
8102
查看次数

Git - 带有 git pull 的 post-receive 钩子“找不到有效的 git 目录”

这很奇怪,但是在设置 git 存储库并使用以下命令创建 post-receive 挂钩时:

echo "--initializing hook--"
cd ~/websites/testing
echo "--prepare update--"
git pull
echo "--update completed--"
Run Code Online (Sandbox Code Playgroud)

钩子确实运行了,但它永远无法正确运行 git pull :

6bfa32c..71c3d2a  master -> master
--initializing hook--
--prepare update--
fatal: Not a git repository: '.'
Failed to find a valid git directory.
--update completed--
Run Code Online (Sandbox Code Playgroud)

所以我现在问自己,如何让钩子用 post-receive 更新克隆?

在这种情况下,运行进程的用户是相同的,它的所有内容都在用户文件夹中,所以我真的不明白......因为如果我手动进入

cd ~/websites/testing
git pull
Run Code Online (Sandbox Code Playgroud)

它工作没有任何问题......

对此的任何帮助将不胜感激

非常感谢

unix git hook

18
推荐指数
2
解决办法
1万
查看次数

将 git 用于多个服务器配置文件

我们已将大量源代码迁移到 git,并对我们当前的解决方案感到非常满意。我们希望在同一系统上对我们的服务器配置文件进行版本控制,但有一些事情无法按照我们希望的方式工作,我希望有人可以在这里分享他的经验。

这个问题类似于对服务器配置文件使用修订控制?,但我们有一些特殊要求,不适用于有关该问题的建议。

当前设置对配置文件使用 subversion。相应的存储库看起来像这样

 / # 仓库根目录
 +--www.domain.com/ # www 的配置
 | \ - 等等/
 | \--apache2/
 +--dev.domain.com/ # dev 的配置
 | +--等/
 | \ - 选择/
 | \--app1/         
 | \--conf/ # 在 dev 上配置 app1
 \--staging.domain.com/ # 暂存配置

使用 subversion 这将工作得很好,因为可以只检出存储库的子目录。此外,您可以使用 svn:externals 来指向几种不同配置设置的一种通用结构。我们只需要处理所有版本化目录中的.svn文件。另一方面 Git没有 svn:externals并且稀疏检出总是要求从根到实际目录的路径相同。

在讨论迁移到 git 时,我尝试写下服务器配置版本控制的主要要求

  • 我们只想要一个存储库
  • 应该可以轻松地将更改推送到中央遥控器
  • 变更集应该包含真正的作者

有没有一种很好的方法可以将所有配置都放在一个存储库中并且只有一个子路径作为工作副本?目前我正在考虑两种方法,但想先在这里问这个问题

  1. 如果.git存储库位于固定位置,例如/var 中的某个位置,我们可以从“目标”工作目录链接到子路径。主要问题:除了符号链接单个文件之外,我不知道有什么方法可以将/etc 中的“链接”到另一个目录以便仅导入内容
  2. 我在这个 SO question上找到了另一种选择,建议在一个存储库中有多个分支。这肯定会增加复杂性,但我可以看到我们尝试这种方式。

在单台机器上使用 …

linux configuration svn git

17
推荐指数
1
解决办法
1万
查看次数