如何在本地网络上设置 Git?

How to setup Git on local network?

我下载了 Git 安装程序并尝试为我网络中的计算机进行安装。我搜索了该过程,但发现它用于在 github.com 上在线托管代码。我找到了一些链接,但没有完整的过程。

我知道如何推和拉。

您必须在服务器端创建一个存储库。转到应该是存储库的文件夹并执行:

git init --bare

然后您必须使用以下命令在您的客户端上克隆存储库:

git clone user@gitserver:/path/to/your/folder

观看 this 了解更多信息。

创建新存储库

  1. 使用 git 创建目录 bash 或手动创建
  2. 用户按照命令创建存储库

    cd /repo/path/projectname.git
    git init --bare
    
  3. 初始化目录后共享目录并授予本地组所有权限

创建本地工作区

  1. 为本地用户或其他计算机创建另一个本地存储库,以相同的顺序使用以下命令

    cd ~/workspace/local/path
    
    git init
    
    git clone user@gitserver:/path/to/your/folder
    
    git add origin repo/path 
    
    git add .
    
    git status
    
    git commit
    

如果您询问如何连接到同一网络上另一台计算机托管的存储库,请查看 this Whosebug thread

基本上,您需要使用 git daemon。如果您只需要设置一个存储库,那是每台机器的一行:

服务器:

git daemon --base-path=/path/to/repo --export-all

客户:

git remote add LocalServerName git://<serveraddress>/

git clone git://<serveraddress>/

其中 <serveraddress> 是对该机器的一些引用(IPv4、IPv6、.local 等)。您还可以为 daemon 命令指定 --verbose 以获得更详细的输出。

我认为,您也可以 --base-path 指向一个包含许多存储库的文件夹,这样您就可以在客户端指定您想要的项目,如下所示:

git daemon --base-path=/path/to/all/repos

git remote add ServerName git://<serveraddress>/MyProject/

请注意:使用 --export-all 将使网络上的任何计算机从您的存储库中提取。

就像 1、2、3、4 一样简单:

1) 转到要初始化服务器的文件夹(例如:c:\temp)。

2) 打开此文件夹中的 git bash

3) 类型:

git init projectName --bare   // e.g => git init test --bare

好了,您刚刚设置了服务器!

4) 选择要初始化客户端存储库的位置并在那里打开 git bash

类型:

git clone path/projectName  // e.g => git clone c:/temp/test

IMPORTANT! DO NOT FORGET TO CHANGE BACKSLASH (\) IN THE PATH TO DIRECT SLASH(/).

您可以照常使用此存储库并使用您喜欢的 git 客户端打开它。

从本地网络中的另一台计算机连接到此服务器:

(in windows 7) 首先进入控制面板 > 网络和共享中心 > 更改高级共享设置。 勾选开启网络发现。

然后转到您设置服务器的文件夹,并将其共享给您想要授予访问权限的用户。

然后输入:

git clone //ip/projectName   // e.g => git clone //192.168.11.125/test

希望有用。

来自JJ-Brown's

Basically, you'll want to use git daemon.

为此,请确保使用 Git 2.32(2021 年第 2 季度):“git daemon"(man) 已针对以反斜杠作为目录分隔符的系统收紧。

commit 9a7f1ce (25 Mar 2021) by René Scharfe (rscharfe)
(由 Junio C Hamano -- gitster -- in commit bde35a2 合并,2021 年 4 月 8 日)

daemon: sanitize all directory separators

Signed-off-by: René Scharfe
Acked-by: Johannes Schindelin

When sanitizing client-supplied strings on Windows, also strip off backslashes, not just slashes.

在[计算机 1]

中创建扩展名为 .git 的服务器文件夹 [repository]
mkdir folder.git
cd folder.git
git init --bare

在您网络中的另一台计算机中 [计算机 2]

mkdir myApp
cd myApp
git init
git add .
git commit -m "first commit"
git remote add origin alex@195.185.1.65:/home/alex/folder.git
git push origin master
  • alex 替换为您的用户名
  • 195.185.1.65 替换为您的服务器计算机的 IP 地址

您网络中的任何计算机都可以访问存储库 [folder.git]

git clone alex@195.185.1.65:/home/alex/folder.git
  • 这将下载名称为 folder 的目录,就像您从 GitHub.
  • 执行此操作一样
假设
  • git 默认使用 ssh 协议在计算机之间进行连接。
  • 您可以通过从远程计算机执行 ssh alex@195.185.1.65 来设置 ssh,它会询问您是否允许连接,写 yes。我认为这比将 public 密钥 复制到位于 /home/.ssh/authorized_keys 的服务器 授权密钥 文件更容易。
  • 记得将 alex 替换为您的 用户名,还有 195.185.1.65 替换为您的 IP 地址。

来源Git--Setting Up the Server