不要错过!Git搭建与基础用法

请添加图片描述
名词释义:

工作区(Working Space):
存放git版本仓库的目录就是工作区

版本库(Repository):
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

暂存区(stage):
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

HEAD:git 是如何知道当前在哪个分支工作呢?它保存着一个名为 HEAD 的指针。是一个指向正在工作中的本地分支的指针。

分布式版本控制系统:每台服务器都拥有所有代码,任意一台服务器崩溃,从其他服务器复制过来就好。git就是此类。

git是一个版本控制系统(Version Control System,VCS)。版本控制是一种记录一个或若干个文件内容变化系统。常见的还有SVN,CVS等软件。有了这些系统,我们就不用担心文件丢失,不小心无修改文件,而且还能随便回到历史修改的某个时刻。
SVN,CVS这类早起的版本控制软件,主要是集中式版本控制系统,他们都有一个单一的集中管理服务器,保存所有的文件修改版本,而系统工作的人员通过客户端链接到这台服务器上,取出最新的文件或是历史版本文件。

案例:

本地搭建git

  1. 查看有没有安装
    在这里插入图片描述
    配置yum源:vim /etc/yum.repos.d/a.repo
    添加以下内容:
[base]
name=CentOS-\$releasever - Base
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/\$releasever/os/\$basearch/
enabled=1
gpgcheck=0

#released updates
[updates]
name=CentOS-\$releasever - Updates
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/\$releasever/updates/\$basearch/
#baseurl=https://mirrors.aliyun.com/centos/\$releasever/updates/\$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=\$releasever&arch=\$basearch&repo=updates
enabled=1
gpgcheck=0

#additional packages that may be useful

[centosplus]
name=CentOS-\$releasever - Plus
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/\$releasever/centosplus/\$basearch/
#baseurl=https://mirrors.aliyun.com/centos/\$releasever/centosplus/\$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=\$releasever&arch=\$basearch&repo=centosplus
enabled=1
gpgcheck=0

[cloud]
name=CentOS-\$releasever - Cloud
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/\$releasever/cloud/\$basearch/openstack-train/
#baseurl=https://mirrors.aliyun.com/centos/\$releasever/cloud/\$basearch/openstack-train/
enabled=1
gpgcheck=0

[paas]
name=CentOS-\$releasever - paas
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/\$releasever/paas/\$basearch/openshift-origin13/
#baseurl=https://mirrors.aliyun.com/centos/\$releasever/paas/\$basearch/openshift-origin13/
enabled=1
gpgcheck=0

[kvm]
name=CentOS-\$releasever - kvm
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/\$releasever/virt/\$basearch/kvm-common/
#baseurl=https://mirrors.aliyun.com/centos/\$releasever/virt/\$basearch/kvm-common/
enabled=1
gpgcheck=0

[extras]
name=CentOS-\$releasever - extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/\$releasever/extras/\$basearch/
#baseurl=https://mirrors.aliyun.com/centos/\$releasever/extras/\$basearch/
enabled=1
gpgcheck=0

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch/debug
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/SRPMS
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
  1. 声明自己的名字和邮箱
    在这里插入图片描述

  2. 创建版本库目录
    mkdir /data
    cd /data
    git init #初始化当前目录为版本库
    验证:
    在这里插入图片描述
    在这里插入图片描述
    branches 分支目录
    config 定义目录特有的配置选项
    description 仅供git web使用
    HEAD 指定当前的分支
    hooks git钩子文件
    info 包含一个全局排除文件(exclude)
    objects 存放所有的数据内容
    refs 指针文件
    index 暂存区文件

  3. 上传代码
    必须进入/data目录创建上传
    上传到暂存区
    git status #查看暂存区
    git rm --cached readme.txt #把文件从暂存区撤销
    git checkout – readme.txt #已经提交到暂存区,之后再修改内容出错,想回到上次暂存区版本
    在这里插入图片描述
    上传到版本库
    git commit -m “add readme.txt file”

3.修改readme.txt内容,使用diff命令查看异同
更改内容:vim readme.txt
在这里插入图片描述

git diff readme.txt
显示多了一行,多出内容为commit(用加号标记)
在这里插入图片描述

如果想要提交:git add … ; git commit …

4.查看版本状态,比对工作区和版本库的异同,并提示
git status

5.查看历史记录

git log #显示详细信息
git log --oneline #显示摘要信息
在这里插入图片描述

6.版本回滚
git reset --hard HEAD^ #回滚到上个版本,HEAD^^上上版本,HEAD~10回滚到上10个版本
git reset --hard 2a42a3d #通告git log 的版本号码回滚,仅写前7位就可
注意:版本回滚前,尽量备份一下当前文件
在这里插入图片描述
7.回滚动作命令日志
git reflog

8.git config 常用配置选项
git config -e 编辑配置文件
git config --local -e 编辑仓库级别配置文件
git config --global -e 编辑用户级别配置文件
git config --system -e 编辑系统级别配置文件
git config 添加配置项目
git config --global user.email “you@example.com”
git config --global user.name “Your Name”
git config 添加别名
git config --global -e
添加:
[alias]
st = status
co = checkout
br = branch
mg = merge
ci = commit
md = commit --amend
dt = difftool
mt = mergetool
last = log -1 HEAD
cf = config
line = log --oneline

1.查看分支
git branch

2.创建分支
git branch ops
切换分支
git checkout ops

创建并切换到新的分支
git checkout -b dev
在这里插入图片描述
3.切换到主分支
git checkout master
在这里插入图片描述
4.合并分支
(1)先切回master
git checkout master
(2)合并分支
git merge dev

5.删除分支
git branch -d dev

6.分支合并冲突
制造冲突:先在分支修改文件,提交;然后回到master,再修改文件相应内容,提交;最后,合并分支,出现冲突。
在这里插入图片描述
删除冲突文件内容:带>>>>>>>>> ================= 行,保留想要的内容,再commit

在这里插入图片描述


搭建Gitlab

Gitlab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过
Web 界面进行访问公开的或者私人的项目

官方网站:https://about.gitlab.com

安装:
1.安装前提软件(先查看有无安装)
在这里插入图片描述
如未安装使用下面命令:

yum install curl policycoreutils openssh-server openssh-clients postfix -y

2.下载清华gitlab安装包
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm

3.复制rpm包到虚拟机,yum安装
yum -y install gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
在这里插入图片描述

4.修改配置文件,指定ip地址
vim /etc/gitlab/gitlab.rb
修改:
external_url ‘http://192.168.1.103’ //改成本地git服务器IP
保存退出

5.配置启动 gitlab
gitlab-ctl reconfigure
中间有类似如下提示按enter即可!
在这里插入图片描述
成功如下图:
在这里插入图片描述

查看状态
gitlab-ctl status
在这里插入图片描述
6.gitlab服务管理命令(开启/关闭/重启)
gitlab-ctl start/stop/restart

7.登录gitlab
http://192.168.1.103
管理员:root
密码:初始配置新密码,最少8位
在这里插入图片描述

8.取消注册功能
登录gitlab–admin area(顶部菜单栏小扳手图标)–左侧面板settings–Sign-up Restrictions–去除勾选sign-up enabled
–下拉选save保存
在这里插入图片描述

验证:
在这里插入图片描述

9.修改登录欢迎界面
登录gitlab–admin area–Appearance–填写管理员联系方式和logo–save
在这里插入图片描述
验证:
在这里插入图片描述

10.项目创建流程
(1)创建group
登录gitlab–admin area–new group
在这里插入图片描述
在这里插入图片描述

(2)创建用户
登录gitlab–admin area–new user–添加用户名、邮箱–create–edit–修改密码
在这里插入图片描述
在这里插入图片描述
设置密码:
在这里插入图片描述
在这里插入图片描述
创建组

添加组成员:权限一定不能设错,否则,默认是gust不能下载上传代码。
在这里插入图片描述
查看到添加的用户:
在这里插入图片描述

(3)创建项目
登录gitlab–admin area–new project–注意选择组
在这里插入图片描述

成功验证:
在这里插入图片描述

11.Gitlab用户在组中有五种权限:

Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,测试、产品经理可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,开发人员可以赋予这个权限
Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限

Gitlab中的组和项目有三种访问权限:
Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到

12.上传ssh-key
本地用户创建秘钥:ssh-keygen -t rsa
复制公钥内容:cat /root/.ssh/id_rsa.pub
黏贴到web界面:右上角–用户–settings–SSH Keys
在这里插入图片描述
在这里插入图片描述

13.克隆下载项目
git clone git@192.168.1.103:dev/accp.git
如下图:则条件具备克隆项目
在这里插入图片描述

先创建项目文件:
在这里插入图片描述
提交:
在这里插入图片描述

在这里插入图片描述
查看:
在这里插入图片描述
报错1:本地克隆失败
在这里插入图片描述
解决:翻译得知,我没有权限或此项目不存在,忘记创建组,创建并添加用户,发现问题并没解决,还是这个错误,还需要给此用户更改有克隆权限即可!此图是改过的,之前是gust这是添加组成员默认的权限
在这里插入图片描述
在这里插入图片描述
再执行成功:
在这里插入图片描述
报错2:致命的:验证失败
在这里插入图片描述
命令错误,clone后面不应该是网页域名,而是git命令的形式填写远程文件地址

14.修改文件内容,再推送上传代码(管理员身份)
cd accp/
echo 123456 > new.txt
git add .
git commit -m “add new.txt”
git push -u origin master

15.在客户机,普通开发人员更新代码流程
(1)上传ssh秘钥
本地用户创建秘钥:ssh-keygen -t rsa
复制公钥内容:cat /root/.ssh/id_rsa.pub
dev01登录:右上角–用户–settings–SSH Keys

(2)关联远程仓库
创建目录:mkdir /data
在这里插入图片描述
在这里插入图片描述

(3)下载同步代码
git pull origin master

(4)创建分支,修改代码
git config --global user.email “dev01@qq.com”
git config --global user.name “dev01”
git checkout -b ops
echo 6666666 > new111.txt
git add .
git commit -m “add new111.txt”

(5)推送dev分支(普通用户无权推送master)
git push -u origin ops

(6)dev01在web界面创建merge请求
create merge request

(7)切换到管理员登录,进入项目,同意merge请求
左侧面板–merge requests–merge

16.常用的git命令
git remote add [remote] [url] #添加(关联)远程库
git remote set-url [remote] [url] #修改远程仓库
git clone [url] #克隆远程仓库项目
git remote #查看指定远程仓库命名简写
git remote –v #查看远程仓库详细信息以及名称对应URL
git push -u remote master #第一次推送master分支的所有内容
git fetch remote [branch/tag] #下载远程仓库的所有变动
git pull remote [branch/tag] #拉取主分支最新版本(可以拉取其他分支)
git push remote [branch/tag] --force #强行推送当前分支至远程分支,及时冲突
git push remote [branch/tag] --all #推送所有分支到远程仓库
git remote rename [oldname] [newname] #修改远程仓库名称
git remote remove [name] #删除远程仓库名称以及URL地址

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Friends of the wind

您的是我坚持原创免费作品的不懈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值