假设您有一个 Git 存储库,就像在 GitHub 上一样,并且有很多人为该存储库做出贡献。每个人都使用自己的编码标准,因此如果没有应用任何标准,代码最终会变得一团糟。
我读过一些关于 git hooks 的内容,但我不完全理解它们的概念或主要用途。
当拉取请求发送到您的存储库时,是否可以使用挂钩将代码发送到某个远程服务,然后将代码格式化为您想要使用的任何 XYZ 标准,然后将格式化的代码返回到回购还是拉入请求?或者它不是那样工作的?
git clone gituser@<server>:myRepo.git 不起作用,失败并显示错误消息:
fatal: ''myRepo.git'' does not appear to be a git repository
背景:
我们有一台装有 Git Bash 和 Bitvise WinSSHd(在C:)的 Windows 7 机器。SSH 服务器设置为<git dir>/bin/sh.exe --login用作 shell,主目录设置为/a/. 我可以很好地通过 SSH 连接到服务器,它会按预期将我放入 Git Bash shell,从/a/目录开始。
我在/a/myRepo.git(在A:磁盘上)有一个裸存储库,它可以完成它应该做的一切,只要我们在本地进行。我可以git clone /a/myRepo.git,处理它,推拉,只要它是本地的(或通过 SSH 的“本地”)就没有问题。此外,我们将 A: 磁盘设置为共享文件夹,我可以使用\\<server>\myRepo.git.
但是,当我尝试远程克隆时,我无法弄清楚哪些选项组合可以使其工作:明显的克隆字符串不起作用,将绝对路径名放在 *nix 转换格式 ( /a/myRepo.gitand A:/myRepo.git) 或 Windows 格式 ( A:\\myRepo.git) 失败并出现相同的错误,目录的权限设置为允许所有用户,我也在git config core.sharedRepository all服务机器上设置。
我怀疑 Git Bash …
给定一个网址:
http://example.com/some-file.zip
Run Code Online (Sandbox Code Playgroud)
文档根目录example.com是/var/www/example.com/
我希望 apache:
/var/www/example.com/some-file.zip存在,服务它。/var/www/example.com/some-file.zip不存在,请检查/var/www/shared/some-file.zip/var/www/shared/some-file.zip不存在,则发送 404这可能吗?
我已经查看了 Alias 指令,但我认为这将要求我在 URI 中有一些内容来指示资源的位置。
我正在尝试克隆刚刚完全开源的 atom 存储库,但遇到了一些麻烦。
尝试访问git clone存储库会产生 SSL 错误:
wug@wugputer:/src/test$ git clone https://github.com/atom/atom.git
Cloning into atom...
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/atom/atom.git/info/refs
fatal: HTTP request failed
Run Code Online (Sandbox Code Playgroud)
谷歌搜索表明这是一个失败的 CURL 调用,我可以设置一个环境变量来获取更多信息,但它没有显示任何特别有用的信息:
wug@wugputer:/src/test$ GIT_CURL_VERBOSE=1 git clone https://github.com/atom/atom.git
Cloning into atom...
* Couldn't find host github.com in the .netrc file; using defaults
* About to connect() to proxy proxy.wugcorp.com port 3128 (#0)
* Trying 10.1.2.3... * Connected to proxy.wugcorp.com …Run Code Online (Sandbox Code Playgroud) 我有一个在 Debian 7 上运行的 puppet/foreman 服务器来管理我的系统。我使用的是 puppet and foreman 1.6.0 的社区版本 3.7。我使用目录环境。
目前,我对自己编写的模块使用了相当复杂的工作流程,在我的开发环境中创建它们,这是颠覆控制的,然后将它们导出到外部目录,构建它们的木偶模块(木偶模块构建...)和在生产中安装它。我考虑过使用 subversion 将它们分支/标记到生产中,但由于我不记得的原因,当时排除了这一点。
同时我学习了一点 git 并且宁愿使用 git 而不是 subversion。我的问题是现在是否有最佳实践可以这样做?我可以想象至少两种方法都有其优缺点。一种方法是将环境开发置于版本控制之下,然后将其克隆/分支到生产环境中。其次是制作每个模块的 git repo 并将它们克隆到环境中。
正如我所说,我是 git 的新手,所以我对它的优点和缺点没有真正的了解。此外,我只使用木偶和工头大约 8 个月。
干杯,克里斯托夫
像大多数其他人一样,我们的存储库服务器需要尽快禁用 SSLv3(和 v2)。
然而,这样做似乎破坏了我们的 git 客户端——至少,在 RHEL5 上(来自我的 FreeBSD 桌面的连接工作正常)。即使是最新的 git (2.1.2) 也失败了,将 OpenSSL 库升级到供应商的最新版本也无济于事。
然而!相同的 git-client 对 github.com 工作得很好——而且 github.com 也已经禁用了 SSLv3。通过反复试验,我将我们服务器的(Apache)SSL 配置设置为与 github 的配置相匹配:
SSLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite "AES128-SHA AES256-SHA RC4-SHA"
Run Code Online (Sandbox Code Playgroud)
通过sslscan在我们的服务器和 github 上运行,我得到了接受和拒绝的相同密码列表。但是 git 继续失败:
% git clone https://git.example.net/git/puppet-hiera
Cloning into 'puppet-hiera'...
* Couldn't find host git.example.net in the .netrc file, using defaults
* About to connect() to git.example.net port 443
* Trying 10.89.8.27... * connected
* Connected to git.example.net (10.89.8.27) …Run Code Online (Sandbox Code Playgroud) 一段时间以来,我一直在我的 Digital Ocean Droplet 上使用 etckeeper,并且从那时起对 /etc 进行了大量更改。
我现在意识到我一直在使用 bzr 并且想切换到 git;但是担心我会丢失对 /etc 目录所做的所有增量更改。
有什么方法不仅可以从 bzr 切换到 git,还可以将 bzr 的增量更改也转换为 git 吗?
谢谢!
最近我为我的局域网安装了 gitlab。当我的用户尝试创建他们的帐户时,他们会收到电子邮件确认消息。现在我的问题是我想禁用整个电子邮件确认功能和一切。为此,我必须在 gitlab 配置文件中配置什么文件,该怎么做?我必须更改哪些选项我在 ruby 方面很差,请详细解释。
我有一个连接到盐主的盐仆从。我最近将一个大的 .sls 从“webserver.sls”重命名为“jetty.sls”。我使用带有 pygit2 和 ssh 的 gitfs 后端。我只启用了 gitfs 后端。
/etc/salt/master:
fileserver_backend:
# - roots
- git
gitfs_provider: pygit2
gitfs_remotes:
- git@bitbucket.org:Groomblecom/[repo].git:
- pubkey: /root/salt-credentials/id_rsa.pub
- privkey: /root/salt-credentials/id_rsa
Run Code Online (Sandbox Code Playgroud)
但是,每当我运行时,都会salt-run fileserver.update && salt '*' state.highstate出现错误:
Data failed to compile:
----------
No matching sls found for 'webserver' in env 'base'
Run Code Online (Sandbox Code Playgroud)
运行salt '*' state.show_sls jetty给出了预期的(长)输出,与我在 bitbucket 存储库中看到的一致。运行salt '*' state.show_top给出以下内容:
----------
base:
- common
- ingress
- webserver
Run Code Online (Sandbox Code Playgroud)
这与 bitbucket repo 中的 top.sls 不一致:
base:
'*': …Run Code Online (Sandbox Code Playgroud) 我想将我所有的 git repos 从我的旧机器复制到我的新机器(都是 Ubuntu)。我将继续使用两台机器......我这样做主要是出于懒惰(嗯:目前有一些本地分支机构,手头有方便的藏匿处,还有我连接了多个遥控器的事实,......传输所有这些都有些乏味......),
...但是(有一些痛苦)是的,我可以很好地从各种上游存储库中克隆...
(当然,repo 状态应该是二进制相同的,无论我是复制文件还是去git clone. 但我可以想象,git 在第一次克隆时将某种独特的 (g)uuid 放入 .git 文件夹中,以区分机器等...但只是一个猜测。我根本不知道内部运作......)
更新: 我的担忧主要围绕 uuids 或类似的、非唯一性的,然后两个本地 git 'repos'(“客户端”)连接到一个远程仓库(“主/服务器”)。
如果您知道这可以或不可以,我需要该知识的实际来源(超出“我相信”或“它是”)。
话虽如此,我想我在 Superuser 上发现了我的问题的重复。