git仓库学习

 前言:github是自己许久许久之前学习的笔记。github和gitlab其实大同小异,因为很久没接触了github,所以gitlab搭的也吃力,也遇到一些问题,然后记录下来了,gitlab那节也是最近自己学习cicd的时候做的笔记。github相当于是公网的仓库,gitlab是自己本地的仓库。

github

下面的是创建自己的仓库

下面的是配置Ubuntu和GitHub进行连接

现在Ubuntu下进行如下操作:

详见《git使用教程》中的 “注册账户以及创建仓库”这一个部分

然后就在Ubuntu下配置Git

记得在下面的位置使用这个命令,方便得到key命令,方便拷贝和粘贴

拷贝完之后(也就是在Ubuntu下配置完),来到github网站的下面位置,进行如下步骤,可以进行连接了。。

验证连接成功的步骤,在使用教程有写到。。。。

Git云协作步骤:

1、初始化本地工作空间

git init

2、获取源码(得到一个文件夹):

git clone https://github.com/123leechm/whoami.git

3、修改工作空间文件

cd repositoryname(这是自己下载的文件夹名)

vi test.c 写自己的文件

4、添加到本地索引(二选一)

git add . (添加当前目录下所有文件,我们也可以指定添加 把 . 变成 文件

名,如下的)

git add filename (添加指定文件)

5、提交代码到本地仓库

git commit -m "修改的文件信息--随便写,就是解释自己添加的是啥"

6、推送到远程(二选一):

git push origin master (这个master就是下面的截图所示)

git push origin 分支名字(master ---features_x 是自己命名的)

(上面两个命令是一样的)

Username for 'https://github.com': 自己的名字 123leechm

Password for 'https://123leechm@github.com': 自己密码 liqi********

分支操作

1、创建分支:

git branch develop(分支的名字)

2、查询分支:

git branch

3、切换分支:

git checkout 分支名称(master 等等)

4、添加到本地索引

写自己的文件

git add . (添加当前目录下所有文件)

git add filename (添加指定文件)

5、提交代码到本地仓库

git commit -m "修改的文件信息--随便写"

6、推送到远程:

git push origin 分支名字(master ---features_x 自己命名)

拉取远程的代码-同步更新本地:

git pull

下面是显示结果:

下面的是步骤:

合并分支

首先切换到master分支 ------> git checkout master

git merge 分支名字

然后再拉取远程的代码-同步更新本地:

git pull

gitlab

gitlab-ce仓库搭建

这里我们使用docker的方式搭建,跑gitlab对机器还有点要求,我的虚拟机是4C8G,我刚开始用的是2C4G,跑着跑着就死机了。

docker run --detach   --hostname master1.gitlab.cn   --publish 443:443 --publish 80:80 --publish 222:22   --name gitlab   --restart always   --volume /srv/gitlab/config:/etc/gitlab   --volume /srv/gitlab/logs:/var/log/gitlab   --volume /srv/gitlab/data:/var/opt/gitlab   gitlab/gitlab-ce:latest

像这里的话,首次登陆会要求更改密码,但是我在实际搭建中,直接让我输入账号密码,可能是测试机器当时先用源码包安装过,环境有影响,如果你跟我一样,那么接下来需要手动更改一下密码,重置root密码,首先docker exec -it xxxx bash 进入容器,然后按照下面的步骤即可

root@master1:/# gitlab-rails console
irb(main):012:0> user=User.where(id:1).first
=> #<User id:1 @root>
irb(main):013:0> user.password='qwe123qwe'
=> "qwe123qwe"
irb(main):014:0> fd9302e48810^C
irb(main):014:0> user.password_confirmation='qwe123qwe'
=> "qwe123qwe"
irb(main):015:0> user.save!
Enqueued ActionMailer::MailDeliveryJob (Job ID: 094eafb0-2e1b-4c90-8dab-2ca86a581453) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007f26251bce50 @uri=#<URI::GID gid://gitlab/User/1>>]}
=> true
irb(main):016:0> exit
root@master1:/# 

gitlab-runner安装注册

安装gitlab runner

docker run -d --name gitlab-runner --restart always \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest 

注册gitlab runner

docker run --rm -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \
  --non-interactive \
  --executor "docker" \
  --docker-image alpine:latest \
  --url "http://192.168.64.150/" \
  --registration-token "vF8S_QjRQH8NxvN2GryZ" \
  --description "first-register-runner" \
  --tag-list "test-cicd1,dockercicd1" \
  --run-untagged="true" \
  --locked="false" \
  --access-level="not_protected"

url和token获取如下截图

 上传代码到gitlab

 这里其实跟上传到github大同小异,这里我着重记录不一样或者是我搭建过程中遇到的问题

添加SSH KEY之后,可以使用ssh -T git@master1.gitlab.cn命令连接一下仓库,要求输入账号密码表示秘钥可以连接到远程仓库,若有报错可以看看/var/log/secure这个log信息,像我刚开始的时候一直报错,原来是使用gitlab部署需要设置一下git这个账户的密码,这个就很坑。

然后就可以创建项目了

接下来导入项目仓库到宿主机,通过HTTP啊

 第一步检查仓库(后期熟悉了直接clone导入即可)

[root@master1 ~]# git clone http://master1.gitlab.cn/root/gitlab_ci_demo.git
正克隆到 'gitlab_ci_demo'...
warning: 您似乎克隆了一个空版本库。
[root@master1 ~]# cd gitlab_ci_demo/
[root@master1 gitlab_ci_demo]# git status 
# 位于分支 master
#
# 初始提交
#
无文件要提交(创建/拷贝文件并使用 "git add" 建立跟踪)
[root@master1 gitlab_ci_demo]# git remote  -v
origin	http://master1.gitlab.cn/root/gitlab_ci_demo.git (fetch)
origin	http://master1.gitlab.cn/root/gitlab_ci_demo.git (push)
[root@master1 gitlab_ci_demo]# 

因为这个是我们新建的仓库,所以里面啥都没有,此时我们想要把我们的代码加入进来,可以这样操作。

第二步 拷贝代码到仓库目录

我们的源码在demo目录下,把demo下面的代码拷贝到我们clone下来的目录下

[root@master1 gitlab_ci_demo]# cp ../demo/* . -af 
[root@master1 gitlab_ci_demo]# cp ../demo/.gitlab-ci.yml . -af 
[root@master1 gitlab_ci_demo]# ls -al 
总用量 24
drwxr-xr-x   4 root root  112 7月  26 17:27 .
dr-xr-x---. 27 root root 4096 7月  26 17:25 ..
-rw-r--r--   1 root root  969 7月  26 16:50 build.gradle
drwxr-xr-x   7 root root  119 7月  26 17:26 .git
-rw-r--r--   1 root root 1544 7月  26 16:50 .gitlab-ci.yml
-rw-r--r--   1 root root   11 7月  26 16:50 README.md
-rw-r--r--   1 root root 3551 7月  26 16:50 sonarqube.gradle
drwxr-xr-x   4 root root   30 7月  26 16:50 src
[root@master1 gitlab_ci_demo]# 

第三步 得到我们的代码之后,接下来就是push到远程仓库了

[root@master1 gitlab_ci_demo]# git init 
重新初始化现存的 Git 版本库于 /root/gitlab_ci_demo/.git/
[root@master1 gitlab_ci_demo]# git status 
# 位于分支 master
#
# 初始提交
#
# 未跟踪的文件:
#   (使用 "git add <file>..." 以包含要提交的内容)
#
#	.gitlab-ci.yml
#	README.md
#	build.gradle
#	sonarqube.gradle
#	src/
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
[root@master1 gitlab_ci_demo]# git add .
[root@master1 gitlab_ci_demo]# git status 
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#	新文件:    .gitlab-ci.yml
#	新文件:    README.md
#	新文件:    build.gradle
#	新文件:    sonarqube.gradle
#	新文件:    src/main/java/org/virtuex/GitlabCiCdSpringBoot.java
#	新文件:    src/main/java/org/virtuex/controler/HelloController.java
#	新文件:    src/main/java/org/virtuex/controler/StudentController.java
#	新文件:    src/main/java/org/virtuex/dao/StudentRepository.java
#	新文件:    src/main/java/org/virtuex/pojo/Student.java
#	新文件:    src/main/java/org/virtuex/service/IStudentService.java
#	新文件:    src/main/java/org/virtuex/service/impl/StudentServiceImpl.java
#	新文件:    src/main/resources/application-test.yml
#	新文件:    src/main/resources/application.yml
#	新文件:    src/test/bin/create_database.sh
#	新文件:    src/test/java/org/virtuex/GitlabCiCdSpringBootTest.java
#	新文件:    src/test/java/org/virtuex/service/impl/StudentServiceImplTest.java
#
[root@master1 gitlab_ci_demo]# git commit -m "first commit"
[master(根提交) 5bafa52] first commit
 16 files changed, 444 insertions(+)
 create mode 100644 .gitlab-ci.yml
 create mode 100644 README.md
 create mode 100644 build.gradle
 create mode 100644 sonarqube.gradle
 create mode 100644 src/main/java/org/virtuex/GitlabCiCdSpringBoot.java
 create mode 100644 src/main/java/org/virtuex/controler/HelloController.java
 create mode 100644 src/main/java/org/virtuex/controler/StudentController.java
 create mode 100644 src/main/java/org/virtuex/dao/StudentRepository.java
 create mode 100644 src/main/java/org/virtuex/pojo/Student.java
 create mode 100644 src/main/java/org/virtuex/service/IStudentService.java
 create mode 100644 src/main/java/org/virtuex/service/impl/StudentServiceImpl.java
 create mode 100644 src/main/resources/application-test.yml
 create mode 100644 src/main/resources/application.yml
 create mode 100644 src/test/bin/create_database.sh
 create mode 100644 src/test/java/org/virtuex/GitlabCiCdSpringBootTest.java
 create mode 100644 src/test/java/org/virtuex/service/impl/StudentServiceImplTest.java
[root@master1 gitlab_ci_demo]# git push origin master
Username for 'http://master1.gitlab.cn': root
Password for 'http://root@master1.gitlab.cn': 
Counting objects: 36, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (28/28), done.
Writing objects: 100% (36/36), 7.22 KiB | 0 bytes/s, done.
Total 36 (delta 2), reused 0 (delta 0)
To http://master1.gitlab.cn/root/gitlab_ci_demo.git
 * [new branch]      master -> master
[root@master1 gitlab_ci_demo]# 

这里简单的分析几个注意事项

  1. 可以通过git stats查看是否有更新
  2. 第一次仓库push的话,记住是master
  3. push成功的关键在于git remote -v仓库是否正确,这个我们其实git clone的时候就会自动生成。

上面的话,简单用到的命令有

git remote -v 查看仓库

git status 查看本地仓库状态,是否有更新

git add 把更新的部分放到暂存区

git commit 放到本地库,并添加changlog

git push origin master 推送到master分支

补充命令:

git remote rm origin 删除origin本地仓库(这个本地仓库可以通过git remote -v 看到) 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值