AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[git](server)

Martin Hope
Ilya Skaba
Asked: 2024-10-25 18:18:15 +0800 CST

如何组织共享 git 存储库

  • 6

在我们公司,我们有一个应用程序,它每天会生成大量的文本文件(每天大约 30000 个文件,总计约 100 兆字节)。大多数文件每天都是相同的,但有些文件每天都有差异。关于这些差异的信息应该被注释和存储。关于注释作者的信息也需要存储(这些文件通常由大约 5-10 个人处理)

这个问题的明显解决方案是使用 git 存储库。我认为可以按如下方式组织工作:

  1. 在网络文件夹上创建非裸存储库,并授予员工访问此文件夹的权限。为员工安装 git 客户端。
  2. 将所有文件添加到存储库并创建初始化提交
  3. 每天覆盖存储库中的文件。
  4. 员工每天都会进入网络文件夹并提交对文件的更改。

这种方法通常有效。但由于存储库规模巨大,并且与存储库的通信是通过网络进行的,因此速度非常慢。例如,git status可能需要 5-10 分钟才能执行。我想到的另一种选择是让用户通过 ssh\rdp 访问存储库计算机,这应该可以加快速度。但这个选项对用户来说太复杂了。您将如何解决这个问题?如果您有任何建议,我将不胜感激,谢谢。

git
  • 1 个回答
  • 56 Views
Martin Hope
Obay Abd-Algader
Asked: 2023-10-24 01:03:40 +0800 CST

git push 命令不通知新分支

  • 5

考虑以下常见情况:

  1. 创建一个新分支git branch -b new-branch
  2. 对代码进行一些更改
  3. 提交更改git add . && git commit -m "stuff"
  4. 推送git push(不是这里我没有添加-u选项)

步骤4的输出为:

Everything up-to-date                                                                                                                                                                          

git 没有通知我这是一个新分支,而且还没有推送。在我的其他设备上,它会打印一条消息,并建议我执行以下操作git push --origin ...something

如何配置 git 再次显示该消息?

git
  • 1 个回答
  • 31 Views
Martin Hope
Nonok cantik
Asked: 2023-06-11 19:19:50 +0800 CST

作为 GitHub 和 GitLab 远程仓库的一个本地目录

  • 5

我们如何为 GitHub 和 GitLab 远程存储库提供一个本地目录,并且始终完美无缺地工作,就好像两种 Git 类型的本地存储库中的每一个都对应于远程存储库中的每一个一样?

git
  • 1 个回答
  • 24 Views
Martin Hope
user2331760
Asked: 2022-03-10 22:09:56 +0800 CST

如何使重复的存储库与 github 保持同步?

  • 0

我在克隆中使用了 github 重复选项和 --bare 并上传到 github.com 中的另一个帐户

在此链接中使用

就像将项目移交给另一个团队的过程一样。

但是原始存储库中有最近的更改,如何在所有分支中同步这些更改。

clone git github
  • 1 个回答
  • 196 Views
Martin Hope
PrestonDocks
Asked: 2021-12-14 13:26:35 +0800 CST

如何从 CI 脚本进行身份验证并推送到 GitHub

  • 2

我在个人 GitLab 服务器上进行开发。在我的 CI/CD 脚本中,我想在创建新标签时将存储库推送到公共 GitHub 存储库。

CI/CD 在临时 Docker 容器中运行,因此没有存储凭据。然而,我可以在 GitLab 中添加秘密,但我不知道我会使用什么 git 命令务实地登录 GitHub。

我已经尝试过git push https://usesrname:[email protected]/myrepo,但这给了我一个身份验证失败的错误。

有任何想法吗?

git github
  • 1 个回答
  • 680 Views
Martin Hope
Solomon Closson
Asked: 2021-11-09 16:12:11 +0800 CST

Rackspace yum install git cURL 443 连接被拒绝

  • 0

尝试在 RHEL Rackspace 专用服务器中安装 git,但在输入此命令后得到以下信息: yum install git

卷曲错误(7):无法连接到服务器 https://rhui.rackspace.com/pulp/mirror//content/dist/rhel8/rhui/8/x86_64/appstream/os [无法连接到 rhui. rackspace.com 端口 443:连接被拒绝]

这可能是防火墙问题吗?这是来自一个干净的构建。我尝试做一个同样的问题yum install openssl-dev

卷曲已安装,但不知道为什么它拒绝连接。有没有办法通过 git 将服务器上的文件链接到 bitbucket 上的存储库?这似乎对我来说应该是非常基本的东西。不知道为什么它甚至试图连接到 rackspace url?如果这是一个愚蠢的问题,我们深表歉意,但是已经到处寻求帮助,并且似乎没有关于此的任何在线信息。我观看的视频显示它按预期工作。我什至尝试安装依赖项,但也无法正常工作yum install git-core

我还尝试了以下方法:

wget https://github.com/git/git/archive/v2.33.1.zip

unzip v2.33.1.zip

cd git-2.33.1/

make prefix=/usr/local all install

此方法一直有效,直到它声明的最后一行no such file or directory #include <openssl/ssl.h>。比起查找我需要安装 openssl-dev 的信息,但不确定这是否会让我陷入困境。如果可能的话,真的只是想在这台服务器上安装 git 吗?

好的,每当我尝试使用 安装任何东西时,我似乎都会收到 443 Connection denied 错误yum,或者dnf例如:

yum groupinstall 'Development Tools'提供指向相同 url 的相同错误。

git bitbucket rackspace
  • 1 个回答
  • 257 Views
Martin Hope
Ra Spirit
Asked: 2021-10-21 12:11:37 +0800 CST

使用 git 和 github 共享一个需要每天更新的文件夹内容

  • 1

我有一个要与他人公开共享的文件夹,该文件夹的内容假设每天更新:一些文件将被更改,一些被删除,一些被添加。我想为此使用GitHub并创建一个 cronjob 来处理存储库更新。如果我总是想在我的 git 存储库中拥有本地文件夹的精确副本,我必须使用哪种git 命令。

这是我打算使用的代码,但我对本地删除的文件有疑问(是否覆盖它们)?‍♂️:

cd ~/myfolder
git init
git add .
git commit -a -m "$current_date"

谢谢你。

backup git github
  • 1 个回答
  • 100 Views
Martin Hope
mahen3d
Asked: 2021-09-03 18:43:22 +0800 CST

SELinux 问题 - git status 致命:内存不足?mmap 失败:权限被拒绝

  • 0

我有运行 Apache 和 Git 的 Centos 7.9 服务器,但是如果我执行

[root@a]# git status
fatal: Out of memory? mmap failed: Permission denied

但是,如果通过以下命令禁用或允许 SE-Linux,它就会开始正常工作。

setenforce Permissive

关于如何在启用 SELinux 的情况下永久解决此问题的任何想法?

审核日志说

node=a type=PROCTITLE msg=audit(1630636505.296:37076): proctitle=67697400737461747573
node=a type=MMAP msg=audit(1630636505.296:37076): fd=3 flags=0x2
node=a type=SYSCALL msg=audit(1630636505.296:37076): arch=c000003e syscall=9 success=no exit=-13 a0=0 a1=3ebd0 a2=3 a3=2 items=0 ppid=8008 pid=8156 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=570 comm="git" exe="/usr/bin/git" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
node=a type=AVC msg=audit(1630636505.296:37076): avc:  denied  { map } for  pid=8156 comm="git" path="/www/site/.git/index" dev="sda2" ino=540400 scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:httpd_t:s0 tclass=file permissive=0
centos git selinux
  • 1 个回答
  • 255 Views
Martin Hope
Patrick Bucher
Asked: 2021-08-07 04:57:42 +0800 CST

Gitea 提供了错误的 SSH 密钥

  • 0

我在可公开访问的虚拟机上运行 Gitea gitea.myorg.foo。这是与我的配置文件的 SSH 配置相关的服务器部分:

[server]                                                                                                                       
SSH_DOMAIN       = gitea.myorg.foo                                                                                            
DOMAIN           = gitea.myorg.foo                                                                                            
ROOT_URL         = https://gitea.myorg.foo/                                                                                   
DISABLE_SSH      = false                                                                                                       
SSH_PORT         = 22                                                                                                                                                                                                                                                                                                     
OFFLINE_MODE     = false

这意味着我运行的是服务器的 sshd,而不是 Gitea 的内部 sshd。

服务器在名为 的用户下运行git。在/home/git/.ssh/authorized_keys中,列出了授权密钥(每个用户和部署密钥)。

不幸的是,当我尝试克隆启用了该部署密钥的存储库时,未提供部署密钥。

假设我想克隆[email protected]/org/repo.git,我得到一个签名与 Web UI 中“部署密钥”下显示的签名完全不同的密钥。当我运行时ssh-keyscan gitea.myorg.foo,我只得到签名中找不到的/home/git/.ssh/authorized_keys。

如何确定和配置 SSH 提供给客户端的密钥?

编辑:我注意到提供的密钥是标记为HostKey定义的密钥/etc/ssh/sshd_config。我需要使用 Gitea 的内部 SSH 服务器,还是可以相应地配置我的本地 SSH 服务器?

deployment ssh git gitea
  • 1 个回答
  • 365 Views
Martin Hope
carlitobrigante
Asked: 2021-08-04 15:02:05 +0800 CST

CentOS 上 gitweb.cgi 的权限被拒绝

  • 1

我已经在我的网络服务器上设置了 gitweb。我在服务器上创建了项目。我可以向它们添加提交,也可以远程克隆它们。

当我访问我的 git.website 时,会显示 gitweb“主页”,并且会加载 css、logo、favicon 等静态文件。

问题是我只看到消息:未 找到此类项目。每次刷新网页时,我都会在 /var/log/httpd/error_log 中看到以下内容

[Wed Aug 04 00:39:32.321352 2021] [cgid:error] [pid 44346:tid 140132795492096] [client MY_HOME_IP:37700] fatal: mmap failed: Permission denied: /var/www/git/gitweb.cgi, referer: https://git.mydomain.abc/

我已经确认 httpd 以 apache 用户身份运行,并且 /var/www 的所有权也设置为 apache。我相信权限也已正确设置:

[root@git ~]# ps auxw | grep httpd
root       44780  0.2  1.6 281804 13828 ?        Ss   00:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache     44782  0.0  1.0 295684  8876 ?        S    00:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache     44783  0.0  1.7 1484604 14712 ?       Sl   00:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache     44784  0.0  2.2 1353476 18956 ?       Sl   00:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache     44785  0.0  2.0 1353476 16760 ?       Sl   00:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache     45019  0.0  1.7 1353476 14708 ?       Sl   00:48   0:00 /usr/sbin/httpd -DFOREGROUND
root       45141  0.0  0.1 221928  1140 pts/0    S+   00:48   0:00 grep --color=auto httpd
[root@git ~]# ls -ld /var/ /var/www/ /var/www/git/ ; ls -lZ /var/www/git/gitweb.cgi 
drwxr-xr-x. 21 root   root   4096 Aug  2 18:16 /var/
drwxr-xr-x.  5 apache apache   44 Aug  2 18:23 /var/www/
drwxr-xr-x.  8 apache apache  179 Aug  4 00:18 /var/www/git/
-rwxr-xr-x. 1 apache apache system_u:object_r:git_script_exec_t:s0 253816 Jul 20  2020 /var/www/git/gitweb.cgi
[root@git ~]# 

/etc/gitweb.conf

$projectroot = '/var/www/git/';
$git_temp = "/tmp";
$stylesheet = "static/gitweb.css";
$logo = "static/git-logo.png";
$favicon = "static/git-favicon.png";

/etc/httpd/conf.d/gitweb-le-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName git.mydomain.abc 
    DocumentRoot /var/www/git
    <Directory /var/www/git>
        SetEnv  GITWEB_CONFIG  /etc/gitweb.conf
        Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
        AllowOverride All
        order allow,deny
        Allow from all
        AddHandler cgi-script .cgi
        DirectoryIndex gitweb.cgi
    </Directory>
    <Files gitweb.cgi>
        SetHandler cgi-script
    </Files>
SSLCertificateFile /etc/letsencrypt/live/git.mydomain.abc/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/git.mydomain.abc/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

如果有人看到我做错了什么,我将非常感谢一些指导.. 谢谢!

EDIT1: 这里是 audit.log

type=SYSCALL msg=audit(1628072069.412:134): arch=c000003e syscall=9 success=no exit=-13 a0=0 a1=b9 a2=1 a3=2 items=0 ppid=2911 pid=2917 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="git" exe="/usr/bin/git" subj=system_u:system_r:git_script_t:s0 key=(null)ARCH=x86_64 SYSCALL=mmap AUID="unset" UID="apache" GID="apache" EUID="apache" SUID="apache" FSUID="apache" EGID="apache" SGID="apache" FSGID="apache"
type=PROCTITLE msg=audit(1628072069.412:134): proctitle=2F7573722F62696E2F676974002D2D6769742D6469723D2F7661722F7777772F6769742F2F796F75747562652D646C2D62617463682E67697400666F722D656163682D726566002D2D666F726D61743D2528636F6D6D697474657229002D2D736F72743D2D636F6D6D697474657264617465002D2D636F756E743D3100726566
type=AVC msg=audit(1628072069.433:135): avc:  denied  { map } for  pid=2919 comm="git" path="/var/www/git/myrepo01.git/objects/1c/1c5ca1a07da5187a696cd1661d6b2a734ad98c" dev="vda1" ino=36639 scontext=system_u:system_r:git_script_t:s0 tcontext=unconfined_u:object_r:git_content_t:s0 tclass=file permissive=0

EDIT2 问题归结为我不是专家的 SELinux。将模式更改为Permissive我现在可以看到我的所有存储库..但是我必须弄清楚如何使它与Enforced模式一起工作..

centos cgi git apache-2.4 selinux
  • 1 个回答
  • 168 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve