标签: git

如何在 git 中的第一次提交时修复元信息?

这是与如何编辑 git 的历史记录以更正不正确的电子邮件地址/名称相关的问题。使用git rebase -i <first commit>, git commit --amend --author "Foo <foo@example.com>", 和git rebase --continue,我能够修复除第一个提交之外的所有提交的日志。如何修复第一次提交?

git

7
推荐指数
1
解决办法
1638
查看次数

致命:http://myserverip/home/git/example.git/info/refs 未找到:您是否在服务器上运行了 git update-server-info?

我按照这个例子在我的服务器上设置了一个 git 存储库。它奏效了,我成功地将push我的代码写入了它。

但是现在,我如何拉取或克隆?

使用文档,我试过

git 克隆 http://REMOTE_SERVER/home/git/example.git

.. 但对我来说,我得到:

致命:http://myserverip/home/git/example.git/info/refs 未找到:您是否在服务器上运行了 git update-server-info?

我运行了 git-update-server info,但没有任何改变

编辑:

啊,等一下。我把它改成了git clone ssh://REMOTE_SERVER/home/git/example.git,我得到了一些东西..它想要我的用户/通行证,但是如何使服务器公开而不需要登录?

clone git

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

多服务器部署策略 - 生产服务器上的 Git?

主要问题:在生产服务器上使用 Git 进行部署是一个好策略吗?

我看到的许多部署策略都围绕着在您的服务器上安装 Git(开发、暂存和生产)。

对于部署到舞台/生产,这的优点似乎很明显:

  • 快速拉动变化的能力
  • 更轻松的自动化
  • 如果需要,可以切换分支(可能是每个测试服务器的分支)
  • 可以查看文件是否在生产服务器中以某种方式更改

但是,我看到了一些缺点:

  • 安全性 - Git 似乎是一个潜在的攻击媒介,即使生产环境具有只读访问权限
  • git pull 如果生产中存在某种未分阶段的更改(也可以使用 -f 克服),则在生产服务器上可能会失败

部署即服务公司(例如 Beanstalkapp.com、deployhq.com)使用 FTP、SFTP 或 SSH。Beanstalkapp 尤其擅长只根据 git 历史修改文件(而不是重新部署每个文件)。这些服务不要求您在舞台/生产服务器上安装 git(尽管如果您通过 SSH 部署,您是否会/可以使用该策略是有争议的)。

我发现我喜欢使用 sftp:

  • 仍然可以在部署前/部署后运行脚本
  • 无论生产服务器上有什么,都可以覆盖、移动、删除文件(这对我来说是一个加分项)
  • 生产环境中没有 .git 目录或任何基于 git 的攻击漏洞

就最佳实践和安全性而言,在生产服务器上轻松使用 git 是否值得?如果没有,在跳过持续集成工具的同时进行部署的好方法是什么?

(我只询问是否跳过 CI 工具,因为时间/预算/客户限制不允许它们用于我的日常使用)。

deployment git multiple-instances

7
推荐指数
1
解决办法
3342
查看次数

Amazon Elastic Beanstalk + Git 子模块

我正在使用 Amazon 的 Elastic Beanstalk 通过 Git 部署我的应用程序,并且我的 Git 中有子模块。当然,当我查看子模块数据应该在的目录时,什么都没有,因为子模块尚未初始化。

显然 Elastic Beanstalk 不支持子模块。这样对吗?如果是这样,我如何说服 Git 让我拥有子模块的功能,但在推送主 repo 时仍然上传子模块的所有代码?

我正在使用 node.js 所以我认为安装脚本可能是最好的选择

git amazon-web-services elastic-beanstalk

7
推荐指数
1
解决办法
2182
查看次数

Gitlab 的 25 个 Sidekiq 进程

查看htop我服务器上的输出,我看到 Gitlab 产生了 25 个 sidekiq 进程。我私下使用 Gitlab,所以永远不会有任何负载,所以我怀疑所有这些过程都是必需的,但我看不到如何配置它们的数量。

在资源受限的服务器上,我真的有必要为此烦恼吗?

debian git htop gitlab

7
推荐指数
1
解决办法
7647
查看次数

DRBD 与 GlusterFS 用于复制

我需要构建一个解决方案来托管内部 git 存储库。它需要支持数十万(或更多)存储库。

我计划将多个“哑”服务器与共享存储一起使用,因此基本上当客户端尝试访问存储库时 - 负载平衡器会将其重定向到任何可用服务器。对存储库的任何更改 - 将在所有节点上复制。

我的第一个想法是为此使用 GlusterFS,但我读过它不能很好地处理小文件。我也在考虑使用 DRBD 自己复制所有内容,但这需要更多设置,并且与 GlusterFS 相比似乎更复杂。

两者中哪一个提供更好的性能?基本上,我试图解决的问题是,当任何服务器出现故障时 - 我希望其他人仍然能够提供数据。

nfs git drbd glusterfs shared-storage

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

Jenkins 报告的未知选项 git config --local

我在堆栈溢出上问了同样的问题,但我只得到了 5 次查看,我认为这是一个更好的论坛来解决这个问题。

我正在为托管在 github 上的私有仓库中的 C# 项目设置 CI。Git 安装在主 CentOS 机器上,MSBuild 安装在从属 Windows 上。

我已经在 github 上创建了帐户,并将其添加到我的私人仓库中。当我在 Jenkins 上设置源代码控制时,我输入了 URL(如https://github.com/.../repo.git)并使用新帐户输入凭据。

詹金斯报道:

Failed to connect to repository : Command "git config --local credential.helper store --file=/tmp/git2956041026506359040.credentials" returned status code 129:
stdout: 
stderr: error: unknown option `local'
usage: git config [options]

Config file location
    --global              use global config file
    --system              use system config file
    -f, --file <FILE>     use given config file

Action
    --get                 get value: name [value-regex]
    --get-all             get all …
Run Code Online (Sandbox Code Playgroud)

git github jenkins

7
推荐指数
1
解决办法
6671
查看次数

Elastic beanstalk 访问私有 git 仓库

我目前正在尝试使用 .ebextensions 命令向我的弹性 beanstalk 实例添加一个 ssh 密钥。

我存储的密钥在我的应用程序代码中,我尝试将它们复制到根 .ssh 文件夹,以便稍后在执行 git+ssh 克隆时访问它们

这是我的 .ebextensions 文件夹中的配置文件示例

packages:
  yum:
    git: []

container_commands:
    01-move-ssh-keys:
        command: "cp .ssh/* ~root/.ssh/; chmod 400 ~root/.ssh/tca_read_rsa; chmod 400 ~root/.ssh/tca_read_rsa.pub; chmod 644 ~root/.ssh/known_hosts;"
    02-add-ssh-keys:
        command: "ssh-add ~root/.ssh/tca_read_rsa"
Run Code Online (Sandbox Code Playgroud)

问题是我在尝试克隆 repo 时遇到错误

Host key verification failed.
Run Code Online (Sandbox Code Playgroud)

我尝试了多种尝试将主机添加到 known_hosts 文件的方法,但都没有奏效!

执行克隆的命令是 npm install 因为 repo 指向节点模块

ssh git node.js elastic-beanstalk

7
推荐指数
1
解决办法
2189
查看次数

如何设置安全的 Git 存储库?

我按照本教程在 EC2 实例上设置了 git 存储库。 http://git-scm.com/book/ch4-4.html。基本上,我添加了一个新git用户并将我的公钥包含在authorized_keys 中。设置git用户后,我只是通过git init --bare.

但是,我注意到我可以轻松地克隆它而无需我的私钥。有没有办法强制它只能通过 SSH 使用,以便遵循 authorized_keys ?我猜它正在使用 git 的默认值,即端口 9418,它似乎不支持身份验证。

ssh git

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

Jenkins 用户凭据未显示在项目中

所以我让 Jenkins-CI 与插件一起运行:

  • 证书
  • 凭据绑定
  • 吉特

首先,为了使用远程存储库对 Git 进行身份验证,我将服务器凭据添加到没有域的全局作用域。

但是,这允许我的 Jenkins 服务器上的任何用户使用这些相同的凭据,从而与我的 Git 远程存储库进行交互。所以我试着去:

Jenkins-> People-> [Username]->Credentials

我尝试添加:

  • 没有域的凭据(“全局(不受限制)”,但仍作为我的个人凭据而不是服务器范围的凭据)
  • 添加凭证域,并以这种方式添加我的 Git 远程用户名和密码。

但是,当我进入Jobs-> [Job]-> Configure-> Source Code Management-> Git-> 时Credentials,它只列出服务器范围的凭据,而不是我注册到帐户的凭据。

所以我的问题是:如何使用对 Jenkins 服务器的其余部分不可用的凭据并在作业的 SCM 凭据中使用它们?

authentication git credentials jenkins

7
推荐指数
1
解决办法
6800
查看次数