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

24

我下载了Git设置并尝试为我的网络计算机进行设置。我搜索了这个过程,但我发现只有在github.com上托管代码的过程。我找到了一些链接,但没有整个过程。

我知道如何推送和拉取。


什么是“整个过程”是什么意思?你需要设置服务器和克隆存储库的命令吗? - Jan
我已经安装了GIT,现在我想创建一个中央仓库,并通过我的其他计算机访问它。但我不知道如何做。我只知道如何推送和拉取。 - Piyush
1
你想使用哪种协议?有http、ssh和git可用,它们都具有不同的属性。 - Rudi
使用HTTP会更好,因为我比其他协议更熟悉它。 - Piyush
你最终找到如何做了吗?我也在寻找同样的东西。作为一个对git没有任何知识的人,很难找到从头开始并解释所有步骤的内容。 - GuidoG
6个回答

21

创建新的代码仓库

  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

2
“add origin” 中的 “repo/path” 是指仓库/路径是什么?我似乎无法使其工作,它总是出错。 - Roi
@Roi,你在这方面有什么进展吗?我也遇到了同样的问题。 - Notts90
@Notts90 是的!基本上你的 git 仓库应该始终是“裸”的,然后你将该仓库克隆为工作分支到你的工作电脑上。 - Roi
1
我需要在服务器上安装哪些软件?我需要在开发电脑上安装哪些软件?如何让它们相互找到?这里没有答案,只有更多的问题。真的没有文档可以帮助那些完全不了解Git的人开始吗? - GuidoG

14
如果您想了解如何连接到同一网络上托管的另一台计算机上的存储库,请参阅此StackOverflow线程
基本上,您需要使用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 将允许网络上的任何计算机从您的存储库中提取内容。

[jack@nasa git]$ git daemon --base-path=/home/jack/git --export-all [11067] 无法绑定到0.0.0.0: 地址已在使用中 - Ingo Mi

9

您需要在服务器上创建一个仓库。进入应该是仓库的文件夹并执行:

git init --bare

您需要使用以下命令在客户端克隆存储库:

git clone [repository URL]

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

请点击这个链接查看更多相关信息。


4
在[计算机1]上创建一个带有.git扩展名的服务器文件夹[存储库]。
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。我认为这比将您的公钥复制到服务器authorized key文件中的方法更容易,该文件位于/home/.ssh/authorized_keys
  • 记得用你的用户名替换alex,并用你的IP地址替换195.185.1.65

来源:Git--设置服务器


1

只需要简单的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

重要提示!不要忘记将路径中的反斜杠(\)改为直接斜杠(/)。

您可以像往常一样使用此存储库,并使用您喜欢的git客户端打开它。

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

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

然后进入您设置服务器的文件夹,并与您想要授权访问的用户共享它。

然后输入:

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

我希望它有用。

git 不被识别为内部或外部命令。请问是否有包含所有步骤的文档? - GuidoG
@GuidoG,主要命令是 git init projectName,带有选项 --bare,表示创建一个裸仓库。如果 GIT_DIR 环境变量未设置,则会将其设置为当前工作目录。其他步骤是常规命令。 - AminRostami
我需要什么软件?我还没有安装Git。我不想在互联网上使用Git,我需要在本地网络中使用Git,并且它永远不应该连接到互联网。那么我需要哪些软件以及它是如何工作的? - GuidoG
@GuidoG,顶级解决方案只需要安装git,当然您可以使用离线的git服务器。例如Bonobo Git Server(适用于Windows操作系统)。使用此链接进行下载:https://bonobogitserver.com/。下载并在本地服务器上创建新网站,将下载的文件复制到您的网站上并享受它。 - AminRostami

0

来自JJ-Brown答案

基本上,你需要使用git daemon。

为此,请确保使用Git 2.32(2021年第二季度): "git daemon" 手册已经对将反斜杠作为目录分隔符的系统进行了加强。

请查看 commit 9a7f1ce(2021年3月25日)由René Scharfe (rscharfe)提交。
(由Junio C Hamano -- gitster --合并于commit bde35a2,2021年4月8日)

守护进程:清理所有目录分隔符

签名者:René Scharfe
认可者:Johannes Schindelin

在 Windows 上清理客户端提供的字符串时,除了斜杠外,还应该去掉反斜杠。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接