Git——分布式版本控制系统

这篇具有很好参考价值的文章主要介绍了Git——分布式版本控制系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

Git是一个开源的分布式版本控制系统,可以高效的处理从小到很大的项目版本管理。

分类

  • 集中式

SVN,CVS

使用单一的服务器用来管理和存储所有文件的修订版本;协同开发的成员拉取或提交都需连接到这台服务器;如果服务器宕机,宕机期间任何人都不能拉取或提交,无法做到协同;如果服务器磁盘损坏,又没有备份,将丢失所有文件的修订历史,文件仅剩下成员在各自电脑中的当前版本。

Git——分布式版本控制系统

  • 分布式

Git

解决集中式缺点,客户端不仅是下载最新文件,而是把代码仓库完整的镜像了,包括历史修订记录。任何一个故障的协同服务器都可以使用镜像出来的本地仓库恢复。

Git——分布式版本控制系统

Git是系统;GitHub是社区

GitHub

准备一个Github账号

#安装Git
[root@wenzi ~]#yum -y install git
#配置秘钥
[root@wenzi ~]#ssh-keygen -t rsa -C 'GitHub邮箱'
#查看秘钥,将公钥复制到GitHub中
[root@wenzi ~]#ll .ssh/
total 8
-rw------- 1 root root 2602 Jun 19 23:02 id_rsa
-rw-r--r-- 1 root root  573 Jun 19 23:02 id_rsa.pub
[root@wenzi ~]#cat .ssh/id_rsa.pub

克隆GitHub已有仓库

GitHub

Git——分布式版本控制系统

本地

#配置git环境
[root@wenzi ~]#git config --global user.name 'GitHub用户名'
[root@wenzi ~]#git config --global user.email 'GitHub邮箱'
#查看git配置
[root@wenzi ~]#cat .gitconfig
#设置远程仓库地址
[root@wenzi ~]#git remote add origin git@github.com:wenzi0729/first.git
[root@wenzi ~]#ll
total 4
-rw-------. 1 root root 1279 May 15 02:35 anaconda-ks.cfg
#克隆远程仓库
[root@wenzi ~]#git clone git@github.com:wenzi0729/first.git
Cloning into 'first'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (6/6), done.
[root@wenzi ~]#ll
total 4
-rw-------. 1 root root 1279 May 15 02:35 anaconda-ks.cfg
drwxr-xr-x  3 root root   35 Jun 19 23:30 first
[root@wenzi ~]#cat first/README.md 
This is created file in GitHub
[root@wenzi ~]#cd first/
#在本地修改仓库文件
[root@wenzi first]#echo 'local local local' >> README.md 
#提交当前目录下所有文件到缓存区
[root@wenzi first]#git add .
#提交到本地仓库
[root@wenzi first]#git commit -m 'This is local created file'
[main b07feb5] This is local created file
 1 file changed, 1 insertion(+)
#提交到远程仓库
[root@wenzi first]#git push origin main
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 287 bytes | 287.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:wenzi0729/first.git
   759f39c..b07feb5  main -> main

验证 

Git——分布式版本控制系统

本地新建仓库上传至GitHub

GitHub需要新建一个空仓库second

#创建新仓库专用目录
[root@wenzi ~]#mkdir second;cd second
#使该目录称为git管理仓库
[root@wenzi second]#git init
设定环境
[root@wenzi second]#git config --global user.name 'wenzi'
[root@wenzi second]#git config --global user.email 'xxxxxxxx@163.com'
[root@wenzi second]#git remote add origin git@github.com:wenzi0729/second.git
#创建新文件
[root@wenzi second]#echo '123123123' > 123.txt
#将git本地的分支名改为main
[root@wenzi second]#git branch -m master main
#因为GitHub中second是新建的仓库,指定默认使用main分支
[root@wenzi second]#git pull --rebase origin main
[root@wenzi second]#git push origin main

验证 

Git——分布式版本控制系统

踩坑:

一、上传到远程仓库时报错

[root@wenzi second]#git push origin main
error: src refspec main does not match any
error: failed to push some refs to 'github.com:wenzi0729/second.git'

2020年10月起,仓库默认分支从master变为main,需要将本地和远程仓库同步

git branch -m master main

二、当GitHub中新建仓库,git第一次上传时报错

[root@wenzi second]#git push origin main
To github.com:wenzi0729/second.git
 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'github.com:wenzi0729/second.git

除了将本地仓库和远程仓库关联外,还需要关联分支

git pull --rebase origin main

GitLab

不支持的 Linux 发行版和类 Unix 操作系统

  • Arch Linux
  • Fedora
  • FreeBSD
  • Gentoo
  • macOS

安装配置

官方文档:GitLab下载安装_GitLab最新中文免费版下载安装-极狐GitLab

gitlab配置文件:/etc/gitlab/gitlab.rb

Gitlab相关命令:

  • 重新加载配置文件:gitlab-ctl reconfigure
  • 重启:gitlab-ctl restart
  • 查看服务状态:gitlab-ctl status
  • 查看所有日志:gitlab-ctl tail
  • 检查gitlab:gitlab-rake gitlab:check SANITIZE=true --trace

一、

[root@wenzi ~]#yum install -y curl policycoreutils openssh-server openssh-clients
[root@wenzi ~]#yum -y install postfix
[root@wenzi ~]#systemctl enable --now postfix.service
[root@wenzi ~]#curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
[root@wenzi ~]#EXTERNAL_URL="http://192.168.29.141:8080" yum install -y gitlab-jh

安装完访问 http://192.168.29.141:8080 ,网页提示502,查看日志 gitlab-ctl tail | grep error、gitlab-ctl tail | grep 8080

发现报错:

{"correlation_id":"","duration_ms":0,"error":"badgateway: failed to receive response: dial unix /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket: connect: connection refused","level":"error","method":"GET","msg":"","time":"2023-06-22T02:02:08+08:00","uri":""}

2023-06-21_18:04:16.06570 /opt/gitlab/embedded/lib/ruby/gems/3.0.0/gems/puma-5.6.5/lib/puma/binder.rb:341:in `initialize': Address already in use - bind(2) for "127.0.0.1" port 8080 (Errno::EADDRINUSE)

原因1:puma端口冲突

解决办法:vim /etc/gitlab/gitlab.rb ,在默认端口# puma['port'] = 8080下新增一行 puma['port'] = 8989 ,此端口不能和external_url重复。修改完毕保存,重新加载配置文件,重启gitlab,等待两三分钟再次访问http://192.168.29.141:8080即可

原因2:使用虚拟机的话,内存不够也会出现502,要给gitlab足够的内存可用,个人感觉内存4G以上,或者配置交换分区。

除非您在安装过程中指定了自定义密码,否则将随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中(出于安全原因,24 小时后,此文件会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码)。使用此密码和用户名 root 登录。

Git——分布式版本控制系统

二、

访问http://192.168.29.141:8080,创建新项目

Git——分布式版本控制系统

配置ssh秘钥,查看id_rsa.pub,将公钥复制到gitlab中

[root@wenzi ~]#ssh-keygen
[root@wenzi ~]#ll .ssh/
total 8
-rw------- 1 root root 2610 Jun 22 02:40 id_rsa
-rw-r--r-- 1 root root  576 Jun 22 02:40 id_rsa.pub

Git——分布式版本控制系统

查看客户端访问项目地址

Git——分布式版本控制系统

三、 

[root@wenzi ~]#git config --global user.name "root"
[root@wenzi ~]#git config --global user.email "git@192.168.29.141"
[root@wenzi ~]#git clone git@192.168.29.141:root/myceshi.git
[root@wenzi ~]#cd myceshi/
[root@wenzi myceshi]#touch local.txt
[root@wenzi myceshi]#git add local.txt
[root@wenzi myceshi]#git commit -m "This is local"
[root@wenzi myceshi]#git push origin main

Git——分布式版本控制系统文章来源地址https://www.toymoban.com/news/detail-499236.html

到了这里,关于Git——分布式版本控制系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式版本控制系统git详解

    是目前世界上最先进的分布式版本控制系统 git命令 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。 Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Lin

    2024年02月15日
    浏览(36)
  • Git分布式版本控制系统与github

    第四阶段提升 时  间:2023年8月29日 参加人:全班人员 内  容: Git分布式版本控制系统与github 目录 一、案例概述 二、版本控制系统 (一) 本地版本控制 (二)集中化的版本控制系统 (三)分布式版本控制系统 三、 Git简介 (一)概述 (二)Git发展史 (三)Git功能特性

    2024年02月11日
    浏览(44)
  • Git分布式版本控制系统——Git常用命令(二)

    五、Git常用命令————分支操作 同一个仓库可以有多个分支,各个分支相互独立,互不干扰 分支的相关命令,具体如下: git branch                               查看分支 git branch [name]                   创建分支(name是分支名) git checkout [name]                切

    2024年04月10日
    浏览(34)
  • Git是一个分布式版本控制系统 一.2

    Git是一个分布式版本控制系统,用于跟踪和管理代码的变化。它最初由Linus Torvalds于2005年创建,并成为开源社区中最流行的版本控制系统之一。 Git的主要特点包括: 分布式:每个开发者都可以在本地拥有完整的代码仓库,并可以独立地进行开发和版本控制。这意味着即使在

    2024年03月13日
    浏览(40)
  • Git 分布式版本控制系统基本概念和操作命令

    目录 Git 基本概念 功能特点 工作流程 操作命令 新建代码库 配置 增删文件 代码提交 分支 标签 查看信息 远程同步 撤销 其他 小结 Git 是一个开源的分布式版本控制系统,用于跟踪文件的变更历史。它最初由 Linux Torvalds 设计,用于 Linux 内核的开发,但由于其强大的功能和灵

    2024年03月27日
    浏览(52)
  • Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月16日
    浏览(55)
  • 2023 最新 Git 分布式版本控制系统介绍和下载安装使用教程

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。 集中式和分布式的区别? 最常见的集中式版本控制系统是SVN,版本库是集中放在中央处理器中的,而干活的时候,用的都是自己电脑,所以首先要从中央服务器那里得到最新的版本,然后开始

    2024年02月09日
    浏览(47)
  • 软件测试/测试开发/全日制/测试管理丨Git分布式版本控制系统

    分布式版本控制: Git是一种分布式版本控制系统,每个开发者都可以拥有完整的代码仓库的拷贝,不依赖中央服务器。这使得团队成员可以在本地独立工作,并且不需要持续的网络连接。 代码仓库: Git用来存储代码的地方被称为仓库(Repository)。仓库可以分为本地仓库和远程

    2024年01月18日
    浏览(64)
  • Linux 分布式版本控制系统git,手把手教向gitee上推代码

    目录 什么是git? 安装git  创建版本库 工作区和版本库、 向版本库中添加文件  版本回退 远程操作 什么是git?  Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 linux是一个开源软件,第一版本,第二版本不同怎么控制?  Git 与常用的版本

    2024年02月10日
    浏览(36)
  • 【linux命令讲解大全】013.Git:分布式版本控制系统的先驱和常用命令清单(二)

    克隆仓库 注意参数,这个不是普通的clone,clone下来的仓库并不能参与开发 命令行中运行代码 执行过程 同步到远程仓库 同步到push远程git仓库 我还遇到了如下面错误,lab默认给master分支加了保护,不允许强制覆盖。Project(项目)-Setting-Repository 菜单下面的Protected branches把maste

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包