基于Ubuntu环境Git服务器搭建及使用

基于Ubuntu环境Git服务器搭建及使用

  • Chapter1 搭建本地git服务器及详细操作步骤
    • 1.搭建本地git服务器
      • 1.1 环境
      • 1.2 服务端配置
      • 1.3 创建git专属用户
      • 1.4 创建git仓库
      • 1.5 配置免密登录基础
    • 2.客户端拉取推送代码
      • 2.1客户端创建ssh公钥
  • 2.2 免密配置
    • 3.仓库使用(拉取及推送代码分支)
      • 3.1拉取仓库分支
      • 3.2推送代码分支
    • 4.常用git指令


Chapter1 搭建本地git服务器及详细操作步骤

原文链接:https://blog.csdn.net/weixin_45805339/article/details/133318082

1.搭建本地git服务器

1.1 环境

服务器:Ubuntu18.04

客户端:windows10_x64、Ubuntu20.04

无论是服务端还是客户端都需要先安装git

Ubuntu安装方法:

sudo apt update
sudo apt install git

1.2 服务端配置

本地git仓库依赖OpenSSH进行数据传输,先检查时候已经安装OpenSSH:

kyland@kyland-u-wuhao:~$ dpkg --list | grep ssh
ii  openssh-client                                                     1:7.6p1-4ubuntu0.7                              amd64        secure shell (SSH) client, for secure access to remote machines
ii  openssh-server                                                     1:7.6p1-4ubuntu0.7                              amd64        secure shell (SSH) server, for secure access from remote machines

如上已经安装了OpenSSH,如果没有安装需要执行一下命令:

sudo apt install -y openssh-server openssh-client

查看ssh状态:

sudo systemctl status ssh 
#如果没有启动,手动启动ssh服务
sudo systemctl enable ssh

1.3 创建git专属用户

在服务器终端输入如下命令,输入两次密码后(比如密码也是:git),一路回车就创建好了

kyland@kyland-u-wuhao:~$ sudo adduser git
[sudo] kyland 的密码: 
正在添加用户"git"...
正在添加新组"git" (1001)...
正在添加新用户"git" (1001) 到组"git"...
创建主目录"/home/git"...
正在从"/etc/skel"复制文件...
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码
正在改变 git 的用户信息
请输入新值,或直接敲回车键以使用默认值全名 []: 房间号码 []: 工作电话 []: 家庭电话 []: 其它 []: 
这些信息是否正确? [Y/n] 

1.4 创建git仓库

cd /home/git #进入git用户家目录
mkdir private_code_repository #创建本地私有git仓库目录
git@kyland-u-wuhao:~$ git init --bare RosProject.git #创建本地私有git仓库RosProject.git
已初始化空的 Git 仓库于 /home/git/RosProject.git/

1.5 配置免密登录基础

mkdir -p /home/git/.ssh/ #在git主目录下先创建一个.ssh目录以便后面使用

2.客户端拉取推送代码

2.1客户端创建ssh公钥

ssh-keygen -t rsa #终端输入一路回车
Generating public/private rsa key pair.
Enter file in which to save the key (/home/Administrator/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/Administrator/.ssh/id_rsa
Your public key has been saved in /home/Administrator/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:DyX41KiKahfSewidYUcINWBEDXfMuLRnuICwNMm16fQ Administrator@MS-TOVQOVTJPKXR
The key's randomart image is:
+---[RSA 3072]----+
|+BO==.           |
|o=.==+ . o       |
|+.o+= . + o      |
|o.o*.+ + o       |
|  =.BE. S        |
| o B .   o       |
|  + =     .      |
| o + .           |
|o . .            |
+----[SHA256]-----+
#在家目录.ssh下生成:id_rsa(私钥)、id_rsa.pub(公钥)两个密钥

原文链接:https://blog.csdn.net/weixin_56546908/article/details/124600622
设置用户名和邮箱
使用命令git config --global user.name "名称"设置用户名
使用命令git config --global user.email “邮箱"设置邮箱
在这里插入图片描述
查看设置的用户名和邮箱
使用命令git config --global --list
在这里插入图片描述
生成密钥信息
输入命令ssh-keygen -t rsa -C"youremail”
之后一直回车即可
在这里插入图片描述
youremail:你自己的邮箱账号 。
补充:-t:指定要创建的密钥的类型。rsa:一种加密算法。-C:添加注释
在这里插入图片描述
红色框框内是生成的公钥和私钥的位置

查看创建好的公钥
可使用gedit或其他工具查看生成的公钥,
以下用gedit: gedit /home/ubuntutest/.ssh/id_rsa.pub
在这里插入图片描述
此公钥将用gitee中SSH公钥的配置
打开gitee—>设置—>SSH公钥
在这里插入图片描述

sudo chown git.git rsa.pub 
git@ubuntu:~$ sudo cat >> .ssh/authorized_keys < rsa.pub git@ubuntu:~$ vim .ssh/authorized_keys
Administrator@PC-xxx MINGW64 /d/123/testgit (master)
$ git clone git@192.168.1.101:/home/git/mytest/mytest.git
Cloning into 'mytest'...
git@192.168.1.101's password:
warning: You appear to have cloned an empty repository.

2.2 免密配置

将客户端公钥id_rsa.pub内容复制到服务端.ssh/下新建文件authorized_keys里,这样我们在拉取推送代码时,就不需要输入密码了。

3.仓库使用(拉取及推送代码分支)

3.1拉取仓库分支

第一次我们需要拉取在服务端创建的仓库:

git clone git@192.168.0.83:/home/git/private_code_repository/RosProject.git
cd RosProject #进入工程
Administrator@MS-TOVQOVTJPKXR MINGW64 /d/git_pro/RosProject (ros2_230926)
$ ls -lah #查看工程内容
total 4.0K
drwxr-xr-x 1 Administrator 197121 0 Sep 26 15:48 ./
drwxr-xr-x 1 Administrator 197121 0 Sep 26 15:45 ../
drwxr-xr-x 1 Administrator 197121 0 Sep 26 17:17 .git/
-rw-r--r-- 1 Administrator 197121 0 Sep 26 15:48 .gitignore

3.2推送代码分支

每次我们更改一个功能的时候都需要创建一个分支,如:

$ git checkout -b ros2_230926 #创建本地分支
Switched to a new branch 'ros2_230926'

更改或者添加代码文件之后要提交代码分支到远程仓库

Administrator@MS-TOVQOVTJPKXR MINGW64 /d/git_pro/RosProject (ros2_230926)
$ touch .gitignore #添加.gitignore文件Administrator@MS-TOVQOVTJPKXR MINGW64 /d/git_pro/RosProject (ros2_230926)
$ git status #查看当前分支状态
On branch ros2_230926No commits yetUntracked files:(use "git add <file>..." to include in what will be committed).gitignorenothing added to commit but untracked files present (use "git add" to track)Administrator@MS-TOVQOVTJPKXR MINGW64 /d/git_pro/RosProject (ros2_230926)
$ git add . #将文件添加到git仓库缓存区(暂存区)Administrator@MS-TOVQOVTJPKXR MINGW64 /d/git_pro/RosProject (ros2_230926)
$ git status
On branch ros2_230926No commits yetChanges to be committed:(use "git rm --cached <file>..." to unstage)new file:   .gitignoreAdministrator@MS-TOVQOVTJPKXR MINGW64 /d/git_pro/RosProject (ros2_230926)
$ git commit -m'添加.gitignore'  #将某些已被跟踪的文件提交到版本库(包含工作区和版本库) 
#因为我们没设置git自身配置文件所以需要进行一下操作
Author identity unknown*** Please tell me who you are.Rungit config --global user.email "you@example.com"git config --global user.name "Your Name"to set your account's default identity.
Omit --global to set the identity only in this repository.fatal: unable to auto-detect email address (got 'Administrator@MS-TOVQOVTJPKXR.(
none)')Administrator@MS-TOVQOVTJPKXR MINGW64 /d/git_pro/RosProject (ros2_230926)
$ git config --global user.email "15840235191@163.com"Administrator@MS-TOVQOVTJPKXR MINGW64 /d/git_pro/RosProject (ros2_230926)
$ git config --global user.name "wuhao"Administrator@MS-TOVQOVTJPKXR MINGW64 /d/git_pro/RosProject (ros2_230926)
$ git commit -m'添加.gitignore' #提交到本地仓库成功
[ros2_230926 (root-commit) 0748e6c] 添加.gitignore1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 .gitignore
Administrator@MS-TOVQOVTJPKXR MINGW64 /d/git_pro/RosProject (ros2_230926)
$ git push -u origin ros2_230926 #在远程仓库创建该分支并且同步本地分支及远程分支
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 221 bytes | 221.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To 192.168.0.83:/home/git/private_code_repository/RosProject.git* [new branch]      ros2_230926 -> ros2_230926
branch 'ros2_230926' set up to track 'origin/ros2_230926'.

以上就完成了代码分支的推送

4.常用git指令

git checkout -b [分支名称] #创建本地分支
git status               #查看本地分支状态
git add .                #将文件添加到git仓库缓存区(暂存区)
git commit -m'[说明]'		#将某些已被跟踪的文件提交到版本库(包含工作区和版本库) 
git diff [修改文件路径]    #查看修改文件详细内容
git reset [分支号]			#本地仓库切换到该分支上,修改的代码保留
git reset --hard [分支号]			#本地仓库切换到该分支上,修改的代码不保留
git rebase [分支名]        #合并该分支到当前分支
git log                  #查看本地操作信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/312399.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react18框架笔记

React React 是 facebook 出的一款针对视图层的库(library)。它是基于单向数据流思想开发的&#xff0c;主要的一个功能就是针对视图显示&#xff0c;让我们把一个项目拆分成一个一个组件进行开发维护。 官网 目前我们讲的 react 是基于 18.2 的版本。react 每一个版本更新之…

2023 年四川省职业院校技能大赛“信息安全管理与评估”样题

2023 年四川省职业院校技能大赛&#xff08;高等职业教育&#xff09; “信息安全管理与评估”样题 竞赛需要完成三个阶段的任务&#xff0c;分别完成三个模块&#xff0c;总分共计 1000分。三个模块内容和分值分别是&#xff1a; 第一阶段&#xff1a;模块一 网络平台搭建与设…

T 检验和 Z 检验之间的区别

在统计学领域&#xff0c;假设检验在从数据中得出有意义的结论方面发挥着至关重要的作用。两种常用的统计检验是 T 检验和 Z 检验。虽然这两种检验都用于评估假设&#xff0c;但它们的应用和假设有所不同。 t 检验和 z 检验都假设数据呈正态分布&#xff08;或近似正态分布&…

归并算法排序

目录 归并排序 逆序对的数量 归并排序 题目如下&#xff1a; 给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式&#xff1a; 输入共两行&#xff0c;第一行包含整数 n。 第二行包含 n 个整数&…

计算机网络(6):应用层

每个应用层协议都是为了解决某一类应用问题&#xff0c;而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。 应用层的具体内容就是规定应用进程在通信时所遵循的协议。 应用层的许多协议都是基于客户服务器方式。即使是对等通信方式&#x…

PTA——计算火车运行时间

本题要求根据火车的出发时间和达到时间&#xff0c;编写程序计算整个旅途所用的时间。 输入格式&#xff1a; 输入在一行中给出2个4位正整数&#xff0c;其间以空格分隔&#xff0c;分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数&#xff08;00-23&#xff0…

Pandas教程(二)—— 不同格式的数据读取

前言&#xff1a;几种常用数据格式的介绍 csv文件 1. 逗号分隔值文件&#xff0c;以纯文本形式&#xff08;记事本&#xff09;存储表格数据 2. 它是一种平面文件&#xff1a;即只存储数据和文字&#xff0c;不能存储公式、图表等 3. 更适合存储大数据&#xff0c;一般用来批…

docker里面不能使用vim的解决办法

docker里面不能使用vim的解决办法 目录 docker里面不能使用vim的解决办法 1.在使用时会出现 2.在使用这些都不能解决的时候考虑 3.测试是否可用 1.在使用时会出现 bash: vim: command not found 出现这种错误时首先考虑使用 apt-get update 然后在用 apt-get install …

Plantuml之EBNF语法介绍(二十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

数据库——建立ER模型及关系模型转换

​ 【实验内容及要求】 使用画图工具或MySQL Workbench等建模工具设计出相应的ER图&#xff0c;将局部ER图合并为一个整体ER模型&#xff0c;在ER模型中填加多样性约束&#xff0c;建立显示主键的ER模型&#xff0c;标识实体的属性&#xff0c;确认主键、外键。将上述ER图转化…

Kubernetes集群部署Rook Ceph实现文件存储,对象存储,块存储

Kubernetes集群部署Rook Ceph部署Ceph集群 1. Rook Ceph介绍 Rook Ceph是Rook项目中的一个存储方案&#xff0c;专门针对Ceph存储系统进行了优化和封装。Ceph是一个高度可扩展的分布式存储系统&#xff0c;提供了对象存储、块存储和文件系统的功能&#xff0c;广泛应用于提供…

《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识(17)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识&#xff08;16&#xff09; 1.4 PCI总线的中断机制 PCI总线使用INTA#、INTB#、INTC#和INTD#信号向处理器发出中断请求。这些中断请求信号为低电平有效&#xff0c;并与处理器的中…