git 服务器架设

2024-04-15 01:18
文章标签 服务器 git 架设

本文主要是介绍git 服务器架设,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

建立一个 Git 代码共享仓库服务器。

1. 服务器

通常用 SSH 协议即可,我们应该为 Git 创建一个专用账号。

$ sudo useradd git$ sudo passwd git
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully


创建一个用来保存代码仓库的目录,注意赋予 git 账号读写权限。

$ sudo mkdir -p /var/git.server/project1
$ cd /var/git.server$ sudo chown git project1
$ sudo chgrp git project1$ ls -l
total 4
drwxr-xr-x 2 git git 4096 2010-05-17 00:55 project1


初始化 project1,注意在服务器上我们无需保留工作目录,因此创建一个纯粹(bare)的代码仓库。

$ cd project1/$ sudo su git$ pwd
/var/git.server/project1$ git --bare init
Initialized empty Git repository in /var/git.server/project1/$ ls -l
total 32
drwxr-xr-x 2 git git 4096 2010-05-17 00:59 branches
-rw-r--r-- 1 git git   66 2010-05-17 00:59 config
-rw-r--r-- 1 git git   73 2010-05-17 00:59 description
-rw-r--r-- 1 git git   23 2010-05-17 00:59 HEAD
drwxr-xr-x 2 git git 4096 2010-05-17 00:59 hooks
drwxr-xr-x 2 git git 4096 2010-05-17 00:59 info
drwxr-xr-x 4 git git 4096 2010-05-17 00:59 objects
drwxr-xr-x 4 git git 4096 2010-05-17 00:59 refs$ exit


我们在服务器上克隆一份用于管理和测试(应该禁止直接操作服务器仓库目录)。

$ git clone /var/git.server/project1/
Initialized empty Git repository in /home/yuhen/project1/.git/
warning: You appear to have cloned an empty repository.$ ls -al project1
total 12
drwxr-xr-x  3 yuhen yuhen 4096 2010-05-17 01:02 .
drwxr-xr-x 10 yuhen yuhen 4096 2010-05-17 01:02 ..
drwxr-xr-x  7 yuhen yuhen 4096 2010-05-17 01:02 .git


我们添加点项目初始化文件。

$ cd project1$ cat > .gitingore << end
> *~
> *.swp
> end$ touch README$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       .gitingore
#       README
nothing added to commit but untracked files present (use "git add" to track)$ git add .
$ git commit -am "Start"
[master (root-commit) 723471e] Start1 files changed, 2 insertions(+), 0 deletions(-)create mode 100644 .gitingorecreate mode 100644 README


我们向服务器提交第一个版本。

$ git push git@localhost:/var/git.server/project1/ masterCounting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 258 bytes, done.
Total 4 (delta 0), reused 0 (delta 0)
To git@localhost:/var/git.server/project1/* [new branch]      master -> master


通常情况下,我们可以用 origin 来代替服务器地址,不过当前测试账号没有写 git.server/project1 的权限,因此用 ssh 路径。同时需要指定 branch。

2. 客户端

好了,现在作为一个普通程序员,我们开始为 project1 项目工作。

$ git clone git@192.168.1.202:/var/git.server/project1
Initialized empty Git repository in /home/yuhen/project1/.git/
git@192.168.1.202's password: 
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 4 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4/4), done.$ ls -al project1
total 16
drwxr-xr-x  3 yuhen yuhen 4096 2010-05-17 01:11 .
drwxr-xr-x 27 yuhen yuhen 4096 2010-05-17 01:10 ..
drwxr-xr-x  8 yuhen yuhen 4096 2010-05-17 01:11 .git
-rw-r--r--  1 yuhen yuhen    9 2010-05-17 01:11 .gitingore
-rw-r--r--  1 yuhen yuhen    0 2010-05-17 01:11 README


代码已经克隆回来了,我们添加或修改一些文件。

$ touch INSTALL$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    INSTALL
nothing added to commit but untracked files present (use "git add" to track)$ git add .$ git commit -am "INSTALL"
[master b85e275] INSTALLCommitter: yuhen <yuhen@yuhen-desktop.(none)>0 files changed, 0 insertions(+), 0 deletions(-)create mode 100644 INSTALL


在将代码提交(push)到服务器之前,首先要确认相关更新已经合并(merge)到 master 了,还应该先从服务器刷新(pull)最新代码,以确保自己的提交不会和别人最新提交的代码冲突。

$ git pull origin master
git@192.168.1.202's password: 
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
From 192.168.1.202:/var/git.server/project1* branch            master     -> FETCH_HEAD
Merge made by recursive.0 files changed, 0 insertions(+), 0 deletions(-)create mode 100644 HISTORY$ git push origin master
git@192.168.1.202's password: 
Could not chdir to home directory /home/git: No such file or directory
Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 474 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
To git@192.168.1.202:/var/git.server/project1c4d7b1e..ee8cfb3  master -> master$ git log
commit ee8cfb3d14eed091e6f96d60af68ec07c05ab09d
Merge: b85e275 c4d7b1e
Author: yuhen <yuhen@yuhen-desktop.(none)>
Date:   Mon May 17 01:17:49 2010 +0800Merge branch 'master' of 192.168.1.202:/var/git.server/project1commit c4d7b1e796cf52e0b600f2c7e992f304052fa8c1
Author: Q.yuhen <qyuhen@hotmail.com>
Date:   Mon May 17 01:17:26 2010 +0800HISTORYcommit b85e275b52812e3d9ac36da78fb8cc924380a58c
Author: yuhen <yuhen@yuhen-desktop.(none)>
Date:   Mon May 17 01:13:35 2010 +0800INSTALLcommit 723471e3421d7fdfa80bf31e5c27f5a174e95afd
Author: Q.yuhen <qyuhen@hotmail.com>
Date:   Mon May 17 01:05:53 2010 +0800Start


我们应该避免频繁向服务器提交代码,而是在一个相对稳定的版本测试通过后再进行。
基本操作就是这些了,当然我们还可以提供只读账号或者 HTTP 访问协议,相关内容可参考《Pro Git》。


这篇关于git 服务器架设的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/904538

相关文章

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

使用Nginx配置文件服务器方式

《使用Nginx配置文件服务器方式》:本文主要介绍使用Nginx配置文件服务器方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 为什么选择 Nginx 作为文件服务器?2. 环境准备3. 配置 Nginx 文件服务器4. 将文件放入服务器目录5. 启动 N