当前位置: 首页 > news >正文

“代码世界的必修课:Git完整指南“(3)

  1. Git图形界面
    1. gitk

在仓库路径下输入gitk

我们在界面上可以看到提交的流程。包括分支的合并。同时可以做分支管理和标签管理

    1. git gui

在命令行中输入git gui

我在testGit仓库内创建一个C.txt, 我们发现文件会加入工作区

我们也可以点击C.txt加入暂存区

同时可以通过commit把暂存区提交到本地库

然后我们可以通过push把本地仓库的文件推送到远程。

我们同时可以根据上面的菜单来操作我们的仓库。有了命令的操作再来看界面简单的一匹。

  1. idea中集合git使用
    1. IDEA中配置Git

打开IDEA进入设置界面(可以直接点击工具栏上的,也可以通过快捷键 Ctrl + Alt + S ),搜索git,如下图是我设置好的:

我们可以看到Git是在Version Control选项里

Path to Git executable就是我们的本地Git安装路径中bin目录下的git.exe,选择好路径后点击Test按钮,如果正确安装且路径正确,那么会弹出如下对话框,表示配置成功:

创建git本地库,克隆GitHub上的仓库

通过idea引入代码

我们可以发现当前代码没有在idea的git上关联,选中添加即可。

此时idea和我们git本地库就已经关联上了。

此刻我们就可以开发了。

  1. GitLab

环境说明

系统版本 CentOS 7.2 x86_64

软件版本 gitlab-ce-10.8.4

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

    1. Gitlab安装

Gitlab的rpm包集成了它需要的软件,简化了安装步骤,所以直接安装rpm包即可,rpm包的获取从官方网站或者国内镜像源(如:清华https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/)获取,gitlab又分为社区版和企业版(收费),这里部署的是社区版本10.8.4

[root@gitlab ~]# mkdir -p /service/tools

[root@gitlab ~]# cd /service/tools/

[root@gitlab tools]# yum localinstall -y gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm            #安装下载好的rpm包

或者

[root@gitlab ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm        #执行rpm -ivh 在线安装

安装成功,但是需要配置,安装完成后出现上面的提示,按照提示修改配置文件中的url地址为本地服务器的地址

[root@gitlab tools]# vim /etc/gitlab/gitlab.rb

external_url 'http://192.168.0.108'

[root@gitlab tools]# gitlab-ctl reconfigure        #重新加载配置

[root@gitlab tools]# gitlab-ctl stop        #停止gitlab,进行后面的汉化

[root@gitlab tools]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

10.8.4        #查看版本

[root@gitlab tools]# rpm -qa gitlab-ce

gitlab-ce-10.8.4-ce.0.el7.x86_64        #查看版本

[root@gitlab tools]# ls /opt/gitlab/                #相关目录

[root@gitlab tools]# ll /var/opt/gitlab                #相关目录

    1. 汉化

默认的全英文界面对于英文水平低的来讲当然用着很不舒服,于是便需要来一波操作进行汉化,英文好的请自觉忽略

GitLab中文社区的项目,v7-v8.8是由Larry Li发起的"GitLab中文社区版项目"(https://gitlab.com/larryli/gitlab),从v8.9之后由@xhang开始继续汉化项目(https://gitlab.com/xhang/gitlab)

[root@gitlab tools]# pwd

/service/tools

[root@gitlab tools]# mkdir /backup

[root@gitlab tools]# cp /opt/gitlab/embedded/service/gitlab-rails/* /backup    #防止汉化失败,备份原文件

[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git        #下载最新的汉化包

汉化包的版本更新速度不得而知,所以尽量不要安装最新版本的gitlab。如果是要下载老版本的汉化包,需要加上老版本的分支,如果想下载10.0.2,可以运行如下语句

[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh

[root@gitlab tools]# ls        #git下来的文件为gitlab

gitlab gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm

[root@gitlab tools]# \cp -rf gitlab/* /opt/gitlab/embedded/service/gitlab-rails/    #拷贝文件

检验汉化

[root@gitlab tools]# gitlab-ctl reconfigure            #加载配置(第一次执行此命令会启动,若只启动执行start)

启动时查看控制台输出,需要等待一段时间,无输出后启动完成,执行free -m命令查看到当前的内存使用情况为

[root@gitlab tools]# free -m

total used free shared buff/cache available

Mem: 2993 2123 156 62 713 597

Swap: 2047 0 2047

[root@gitlab tools]# netstat -lntup

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 4319/node_exporter

tcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 4628/gitlab-workhor

tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 4659/ruby

tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 4191/unicorn master

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4223/nginx: master

tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 4196/sidekiq 5.0.5

tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 4642/gitaly

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1439/sshd

tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 4223/nginx: master

tcp 0 0 0.0.0.0:6783 0.0.0.0:* LISTEN 4696/alertmanager

tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 4425/redis_exporter

tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 4681/prometheus

tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 4710/postgres_expor

tcp 0 0 127.0.0.1:9093 0.0.0.0:* LISTEN 4696/alertmanager

tcp6 0 0 ::1:9168 :::* LISTEN 4659/ruby

tcp6 0 0 :::22 :::* LISTEN 1439/sshd

    1. Gitlab使用
      1. 登录基本操作

GitLab终端常用命令

gitlab-ctl start             #启动所有 gitlab 组件;

gitlab-ctl stop         #停止所有 gitlab 组件;

gitlab-ctl restart     #重启所有 gitlab 组件;

gitlab-ctl status         #查看服务状态;

gitlab-ctl reconfigure     #启动服务;

vim /etc/gitlab/gitlab.rb #修改默认的配置文件;

gitlab-rake gitlab:check SANITIZE=true --trace #检查gitlab;

gitlab-ctl tail         #查看日志;

修改密码后进行登录,登录的用户名为root

3.1 使用前可选操作

3.1.1 修改web端口

如果80和8080端口被占用可以修改

[root@gitlab tools]# vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb

listen "127.0.0.1:8080", :tcp_nopush => true

修改nginx端口

[root@gitlab tools]# vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

server {

listen *:80;

3.1.2 修改Prometheus端口

[root@gitlab tools]# vim /etc/gitlab/gitlab.rb

external_url 'http://10.0.0.5:port'        #根据需要修改端口

修改后需要重新加载配置并启动

      1. 使用方法

访问:http://192.168.0.108/

重置密码

登录:默认用户名是root,密码使用刚刚重置过的。

创建空白项目

选择项目路径,输入项目名称,项目描述,选择项目等级(私人的,内部的,公开的),

我们能看到Gitlab给我们的使用当前项目的教程。学过git和GitHub,想必我这些已经都会了。

我们发现上面有一行黄色的提示,要求我们配置ssh

首先生成公钥:

[root@gitlab-client ~]# ssh-keygen

[root@gitlab-client ~]# cat .ssh/id_rsa.pub         #查看公钥

将上面的公钥文件复制到gitlab中

我们在远程机器生成私钥

生成新的SSH密钥: ssh-keygen -t rsa -C "your_email@address"

此命令将提示您用于存储密钥对和密码的位置和文件名。当提示输入位置和文件名时,只需按Enter键即可使用默认值。如果使用其他名称,则不会自动使用该密钥。

在C盘下 .ssh 文件夹中会生成 id_rsa 和 id_rsa.pub 两个文件,其中 id_rsa.pub 里面是以ssh-rsa开头并以您的用户名和主机结尾的完整密钥。将密钥复制粘贴到 profile settings中 SSH keys 选项卡下,add an ssh key ,保存。

步骤:

         在window系统打开命令行输入

ssh-keygen -t rsa -C "renliangjava@163.com"

打开id_rsa.pub,把所有内容复制

到Gitlab中将密钥复制粘贴到 profile settings中 SSH keys 选项卡下,add an ssh key ,保存。跟添加公钥的步骤完全一致

随机我们配置本地用户信息和本地库创建本地git库

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3

$ git init

Initialized empty Git repository in D:/testGit3/.git/

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)

$ git config --local user.name 'zhangsan'

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)

$ git config --local user.mail 'zhangsan@126.com'

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)

$ git remote add origin git@192.168.0.108:root/spring_src.git

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)

$ echo 'test' > test.txt

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)

$ git status

On branch master

No commits yet

Untracked files:

  (use "git add <file>..." to include in what will be committed)

        test.txt

nothing added to commit but untracked files present (use "git add" to track)

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)

$ git add .

warning: LF will be replaced by CRLF in test.txt.

The file will have its original line endings in your working directory.

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)

$ git commit -m 'add a test file'

[master (root-commit) 666da41] add a test file

 1 file changed, 1 insertion(+)

 create mode 100644 test.txt

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)

$ git push -u origin master

Enumerating objects: 3, done.

Counting objects: 100% (3/3), done.

Writing objects: 100% (3/3), 216 bytes | 216.00 KiB/s, done.

Total 3 (delta 0), reused 0 (delta 0)

To 192.168.0.108:root/spring_src.git

 * [new branch]      master -> master

Branch 'master' set up to track remote branch 'master' from 'origin'.

此刻我们可以看到远程仓库里面文件以及推送。

随机我们将Spring源代码上传Gitlab

此时我可以通过另一个git本地库克隆

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4

$ git clone git@192.168.0.108:root/spring_src.git

Cloning into 'spring_src'...

remote: Counting objects: 9622, done.

remote: Compressing objects: 100% (6230/6230), done.

remote: Total 9622 (delta 2851), reused 9619 (delta 2851)

Receiving objects: 100% (9622/9622), 13.57 MiB | 14.34 MiB/s, done.

Resolving deltas: 100% (2851/2851), done.

Checking out files: 100% (7948/7948), done.

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4

$ ll

total 12

drwxr-xr-x 1 rlsl180506 197121 0 2月  19 11:26 spring_src/

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4

$ cd spring_src/

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)

$ git config --local user.name 'lisi'

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)

$ git config --local user.mail 'lisi@126.com'

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)

$ git config --local -l

core.repositoryformatversion=0

core.filemode=false

core.bare=false

core.logallrefupdates=true

core.symlinks=false

core.ignorecase=true

remote.origin.url=git@192.168.0.108:root/spring_src.git

remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*

branch.master.remote=origin

branch.master.merge=refs/heads/master

user.name=lisi

user.mail=lisi@126.com

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)

$ ll

total 70

-rw-r--r-- 1 rlsl180506 197121 11118 2月  19 11:26 build.gradle

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 buildSrc/

-rw-r--r-- 1 rlsl180506 197121  2395 2月  19 11:26 CODE_OF_CONDUCT.adoc

-rw-r--r-- 1 rlsl180506 197121  6308 2月  19 11:26 CONTRIBUTING.md

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 gradle/

-rw-r--r-- 1 rlsl180506 197121    23 2月  19 11:26 gradle.properties

-rwxr-xr-x 1 rlsl180506 197121  5533 2月  19 11:26 gradlew*

-rw-r--r-- 1 rlsl180506 197121  2349 2月  19 11:26 gradlew.bat

-rw-r--r-- 1 rlsl180506 197121  4529 2月  19 11:26 import-into-eclipse.bat

-rw-r--r-- 1 rlsl180506 197121  4078 2月  19 11:26 import-into-eclipse.sh

-rw-r--r-- 1 rlsl180506 197121  1868 2月  19 11:26 import-into-idea.md

-rw-r--r-- 1 rlsl180506 197121  2290 2月  19 11:26 README.md

-rw-r--r-- 1 rlsl180506 197121  1154 2月  19 11:26 settings.gradle

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-aop/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-aspects/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-beans/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-context/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-context-indexer/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-context-support/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-core/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-expression/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-framework-bom/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-instrument/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-jcl/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-jdbc/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-jms/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-messaging/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-orm/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-oxm/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-test/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-tx/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-web/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-webflux/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-webmvc/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 spring-websocket/

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 src/

-rw-r--r-- 1 rlsl180506 197121     6 2月  19 11:26 test.txt

drwxr-xr-x 1 rlsl180506 197121     0 2月  19 11:26 tx-spring-teach/

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)

$ vi test.txt

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)

$ git add .

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)

$ git commit -m 'aa'

[master 1c8f28d] aa

 1 file changed, 1 insertion(+)

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)

$ git push

Enumerating objects: 5, done.

Counting objects: 100% (5/5), done.

Delta compression using up to 12 threads.

Compressing objects: 100% (2/2), done.

Writing objects: 100% (3/3), 250 bytes | 250.00 KiB/s, done.

Total 3 (delta 1), reused 0 (delta 0)

To 192.168.0.108:root/spring_src.git

   bf028b3..1c8f28d  master -> master

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)

$

刷新Gitlab我们可以看到变化。


http://www.mrgr.cn/news/65568.html

相关文章:

  • 「iOS」——知乎日报一二周总结
  • 国产服务器部署2.离线安装docker26与docker-compose
  • 【二分查找】——搜索二维矩阵#力扣hot100
  • 网工的出路在哪?
  • 《分布式机器学习模式》:解锁云端分布式ML系统的实战宝典
  • 【skywalking 】More than 15,000 ‘grammar‘ tokens have been presented. 【未解决请求答案】
  • SSD201 SSD202D SigmaStar智能高清显示芯片
  • 「Mac畅玩鸿蒙与硬件15」鸿蒙UI组件篇5 - Slider 和 Progress 组件
  • 北京美信时代渠道代理:运维后期维保服务策略
  • 跳表原理笔记
  • TensorRT-LLM笔记
  • 高效内容营销策略提升品牌影响力与客户忠诚度
  • RAC 添加redo log group
  • 惊喜!RFID技术的应用竟如此多元?
  • springboot使用kafka推送数据到服务端,带认证
  • php代码审计--常见函数整理
  • SpringBoot启动器
  • unity游戏开发之--人物打怪爆材料--拾进背包的实现思路
  • React系列教程(2)React哲学
  • 开源呼叫中心系统 FreeIPCC:WebRTC 详解
  • ps和top的区别
  • 「Mac畅玩鸿蒙与硬件27」UI互动应用篇4 - 猫与灯的互动应用
  • 拯救者y7000p 打开XMP
  • 外包干了5年,技术退步太明显了。。。。。
  • day-78 平方数之和
  • ai常见实验