标签: gitlab

使用PUTTY生成密钥

所以我正在学习如何自己使用gitlab,以便将来可以使用.我坚持生成关键部分.我已经下载了PUTTY,但不知道如何生成密钥.

目前我关注这篇文章,但不知道如何选择密钥.

在此输入图像描述

git putty gitlab

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

同一阶段的Gitlab管道作业并不是并行运行的

我们在同一阶段有4个可以同时运行的部署作业.来自Gitlab文档:

阶段元素的排序定义了作业执行的顺序:

  1. 同一阶段的工作是并行运行的.

  2. 下一阶段的作业在上一阶段的作业成功完成后运行.

但是,会发生的情况是,一次只运行一个作业,而其他作业仍在等待处理.是否有其他事情我需要做才能让它并行执行.我正在使用一个带有在Ubuntu 16.04实例上托管的shell执行器的运行器.

gitlab gitlab-ci-runner

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

Git推送和提交者

当我在提交中推送到GIT(Gitlab)repo时,我看到用户在'user.email'和'user.name'中设置了提交.

为什么会这样?我认为有关用户的信息应该从Gitlab配置文件中获取.现在可以欺骗我们的身份.

git security gitlab

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

不能使用git add origin git @任何新的git dir

我有一个项目,我正在生成许多提交,所以它占用的空间正在快速增长.由于我有一个gitlab页面提交被推送,我认为最好摆脱我本地git目录上的这些旧提交,因为我总是可以从gitlab获取它们.

为此,我只删除了本地.git目录,并创建了一个新目录.我用了这个序列

git init 
git add .
git push -m "test"
git add origin git@myGitPage.../myGitPage.git 
Run Code Online (Sandbox Code Playgroud)

但是最后一个命令导致了

致命的:pathspec'genin'与任何文件都不匹配

然后我恢复了旧的.git目录,做了一些修改并将它们推送到gitlab.然后删除了本地git dir,再次尝试使用从头创建的新git,但正如预期的那样,它再次无法工作.

在恢复旧的git时,我正在恢复旧版本,因为我将新版本推送到gitlab,现在当我发送一个

git push origin master
Run Code Online (Sandbox Code Playgroud)

用这个旧版本

我收到了

![拒绝]主 - >主(非快进)错误:未能将某些引用推送到'git @ ...'为了防止您丢失历史记录,拒绝非快进更新在推送之前合并远程更改再次.有关详细信息,请参阅"git push --help"中的"关于快进的注意事项"部分.

如果我下载,然后从gitlab解压缩最新版本,我会收到相同的:

致命的:pathspec'genin'与任何文件都不匹配

要召唤它,使用全新的git目录或gilab的最新版本,我收到上述错误消息.随着已经老了,我收到的消息提到快速前进.

我怎么能解决所有这些混乱,回到我的常规

git add .
git push -m "anything"
git push origin master
Run Code Online (Sandbox Code Playgroud)

不需要在我的电脑上保留旧的提交,但没有在gitlab上删除它们?

git gitlab

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

如何禁用gitlab Runner获取git仓库?

我的.gitlab-ci.yml中有这样的任务

deploy_all:
  stage: deploy
  script:
    - cp project/target/jnlp/* html/jnlp/
  tags:
    - client:deploy-all
Run Code Online (Sandbox Code Playgroud)

一切正常,除非不必要的git仓库获取。以下是跑步者日志中的摘录

Running with gitlab-ci-multi-runner 9.1.0 (0118d89)
...
Fetching changes...
HEAD is now at 8dfc104 Update .gitlab-ci.yml
...
Job succeeded
Run Code Online (Sandbox Code Playgroud)

这里不需要存储库,因为我只需要其他任务的工件。是否可以禁用此行为?

gitlab gitlab-ci gitlab-ci-runner

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

删除X个月之前的远程git标签

我正在尝试删除X个月以上的git标签

我们有需要保留的发行标签,它们都标记release-** = date

我知道如何删除单数标签 git push origin :refs/tags/<tagName>

所以我推断出要删除所有远程标签

git ls-remote --tags origin | xargs git push origin :$1

要跳过我计划使用的发布标签,请使用egrep -v以下命令

git ls-remote --tags origin | egrep -v "(^\*|release*)" | xargs git push origin :$1

但是我至今还没有弄清楚如何做到这一点。

我可以在本地按日期排序,例如,git for-each-ref --sort=taggerdate --format '%(refname)' refs/tags | egrep -v "(^\*|release*)"但这对远程标记没有帮助。

如果有帮助,我不介意删除或不删除本地标签以删除远程标签。

最后,如果它提供了更好的清除方法,我们将使用gitlab?

无论如何,这都需要通过Jenkins像脚本一样运行,以帮助满足git清理的需要。

更新资料

因为我们有成千上万个git标签,所以我意识到xargs将会变得非常慢。

我相信删除的方式更有可能是

git push origin $(< git tag | <sorting_by_date + exclude release> \ | sed -e 's/^/:/' | paste -sd " …

git gitlab

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

git push - 如何修复错误远程:致命:坏对象HEAD?

我确实克隆了一个主分支,创建了一个新的分支并进行了更改,提交并尝试使用以下命令进行推送:

git push origin myNewBranch,但我一直收到以下错误:

remote: fatal: bad object HEAD
To https://gitlab.com/myProjectRepo/my-app.git
 ! [remote rejected] myNewBranch -> myNewBranch (missing necessary objects)
error: failed to push some refs to 'https://gitlab.com/myProjectRepo/my-app.git'
Run Code Online (Sandbox Code Playgroud)

我得到的错误没有提到或指向任何像这里问的空对象文件.在尝试push不这样做时,它也发生在我身边commit

git gitlab

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

gitlab-ctl重新配置:无法确定节点名称

我确实在Ubuntu 16.04.4 LTS上设置了一个新的GitLab实例。安装软件包运行正常,并且GitLab似乎已启动并正在运行。然后,我开始在中配置实例并设置SMTP /etc/gitlab/gitlab.rb。之后我跑了sudo gitlab-ctl reconfigure。它失败,并显示以下错误消息:

Starting Chef Client, version 13.6.4

Running handlers:
There was an error running gitlab-ctl reconfigure:

Unable to determine node name: configure node_name or configure the system's hostname and fqdn

Running handlers complete
Chef Client failed. 0 resources updated in 10 seconds
Run Code Online (Sandbox Code Playgroud)

设置系统的主机名和fqdn:

$ hostname --fqdn
git-lab.dom
$ hostname
git-lab
Run Code Online (Sandbox Code Playgroud)

Ohai似乎成功读取了主机名,fqdn和域:

$ /opt/gitlab/embedded/bin/ohai
[...]
"hostname": "git-lab",
"machinename": "git-lab",
"fqdn": "git-lab.dom",
"domain": "dom",
[...]
Run Code Online (Sandbox Code Playgroud)

对于类似问题答案建议手动设置node_namein /etc/chef/client.rb。但是,gitlab omnibus软件包似乎将client.rb放在其他位置。我也不愿意遵循这个建议,因为对于我来说到目前为止我还没有必须安装其他的GitLab,这对我来说似乎很奇怪。此外,文档指出(重点是我): …

chef-infra gitlab gitlab-omnibus

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

使Gitlab上的私人仓库的单个文件可公开访问

我的GitLab私有存储区中有一个bash脚本文件。我希望在运行wget命令时在Linux中下载文件,但是由于文件托管在私有存储库中,因此下载失败,因此转到登录页面。

有没有一种方法可以使该单个文件公开访问?如果不是,是否有办法在尝试打开文件时将我的凭据包括在GET URL中?

wget gitlab

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

使用Gitlab进行Webhook配置

我有一个Jenkins管道项目,我希望每次推送到托管代码的Gitlab存储库时都会触发构建.

在Jenkins上我安装了Gitlab插件和Git插件,我通过添加Gitlab主机URL(https://gitlab.com)和之前生成的Gitlab API令牌来配置Gitlab部分(管理Jenkins - >配置系统). Gitlab:如果我执行测试连接,一切正常,正如预期的那样.

问题出在Gitlab上:我转到Settings - > Integrations,我尝试通过添加我在项目配置中找到的Jenkins项目URL来配置webhook(下面突出显示):

在此输入图像描述

但是有一个问题:似乎不允许从Gitlab向localhost请求.

在此输入图像描述

似乎要避免这个问题是必要的,以激活一个选项(允许从钩子和服务请求到本地网络),但只有当我有自己管理的Gitlab服务器时,此选项才可用.相反,我的项目托管在gitlab.com上,因此无法修改此选项.

在我的案例中,有任何解决方法或替代解决方案来配置webhook吗?

git jenkins gitlab gitlab-ci

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