Python开发入门/搭建本地git/ 远程仓库gitlab
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python开发入门/搭建本地git/ 远程仓库gitlab,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含8676字,纯文字阅读大概需要13分钟。
内容图文
![Python开发入门/搭建本地git/ 远程仓库gitlab](/upload/InfoBanner/zyjiaocheng/749/83c9749cc3f04b6f8957e48ccc464202.jpg)
一.本地使用git
Git简介
? Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
? Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
? Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,
不必服务器端软件支持。
推荐:《pro git》https://down.51cto.com/data/273438
Git工作流程
1.安装及配置
? Git安装后需配置用户相关信息
[root@node1 ~]# yum -y install git //安装
[root@node1 ~]# git config --global user.name "Mr.LXH" //设置用户名
[root@node1 ~]# git config --global user.email "LXH@tedu.cn" //设置用户email
[root@node1 ~]# git config --global core.editor vim //设置默认编辑器为vim
查看配置信息:
2.git的应用流程
2.1.创建版本库
? Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init是使用 Git
的第一个命令。
方法一:还没有项目前
[root@node1]# git init myself
初始化空的 Git 版本库于 /root/nsd2019/myself/.git/
[root@node1]# ls -A myself/
.git
方法二:已有项目目录
2.2.添加文件到暂存区
工作区、暂存区和版本库 (git重要工作区域)
? 工作区:就是你在电脑里能看到的目录 (编写代码的项目目录)
? 暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也
叫作索引(index) (工作区与版本库之间的缓冲地带)
? 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库(在工作区中有一个名为.git的目录,他是保
存文件的目录)
[root@node1 self1]# git status //查看状态
[root@node1 self1]# git status -s
?? index.html
]# git add index.html //提交到暂存区
]# git status
]# git status -s
A index.html
2.3提交文件到版本库
[root@node1 self1]# git commit -m "add new file index.html"
]# git status
2.4将文件从暂存区撤出
[root@node1 self1]# cp /etc/hosts .
[root@node1 self1]# git add .
[root@node1 self1]# git status
[root@node1 self1]# git reset HEAD hosts
[root@node1 self1]# git status
2.5删除文件
提交文件
[root@node1 self1]# git status -s
?? hosts
[root@node1 self1]# git add . //将尚未提交到版本库的文件提交
[root@node1 self1]# git status -s
A hosts
[root@node1 self1]# git commit -m " add hosts" //提交
删除hosts文件
[root@node1 self1]# rm -f hosts
[root@node1 self1]# git status
[root@node1 self1]# git rm hosts
rm 'hosts'
[root@node1 self1]# git status
[root@node1 self1]# git status -s
D hosts
[root@node1 self1]# git commit -m "delete hosts" //彻底删除
继续删除index.html
[root@node1 self1]# git rm index.html
[root@node1 self1]# git status
[root@node1 self1]# git reset HEAD index.html
[root@node1 self1]# git status
[root@node1 self1]# git checkout -- index.html
[root@node1 self1]# ls
[root@node1 self1]# git status
2.6 移动,复制
[root@node1 self1]# mkdir abc
[root@node1 self1]# cp /etc/passwd .
[root@node1 self1]# cp /etc/shadow .
shadow shadow- shells
提交文件到版本库
[root@node1 self1]# git add .
[root@node1 self1]# git commit -m "add new files"
[root@node1 self1]# git status
[root@node1 self]# git commit -m "mv passwd -> abc/mima"
[root@node1 self]# git status
将shadow拷贝到abc
[root@node1 self1]# cp shadow abc
[root@node1 self1]# ls
abc index.html shadow
[root@node1 self1]# git status
[root@node1 self1]# git add .
[root@node1 self1]# git status
[root@node1 self1]# git commit -m "cp shadow abc/"
2.7 分支管理
-
git默认有一个名为master的分支
-
git默认情况下,名为HEAD的指针指向master返回到之前的某一次commit:
[root@node1 self1]# git log [root@node1 self1]# git status [root@node1 self1]# git checkout 5acd40b9bf4506f2f97500d62497e6f67088b35b [root@node1 self1]# ls hosts index.html [root@node1 self1]# git checkout master [root@node1 self1]# ls abc index.html shadow [root@node1 self1]# git branch b1 [root@node1 self1]# git branch b1 * master [root@node1 self]# ls abc index.html shadow
在b1分支中,新建文件
[root@node1 self]# echo 'hello world' > hello.txt
[root@node1 self]# ls
abc hello.txt index.html shadow
[root@node1 self]# git add .
[root@node1 self]# git commit -m "add hello.txt"
当b1中的代码已经完成了,就可以将分支汇入主干切换到master分支,并汇入
[root@node1 self]# git checkout master
切换到分支 'master'
[root@node1 self]# ls
abc index.html redhat-release shadow
[root@node1 self]# git merge b1
[root@node1 self]# ls
abc hello.txt index.html redhat-release shadow
删除分支
[root@node1 self]# git branch -d b1
已删除分支 b1(曾为 8853c68)。
[root@node1 slef]# git branch
* master
二.git服务器应用
使用远程服务器
准备一台虚拟机192.168.1.12
内存4G以上
安装docker
把gitlab_zh.tar包拷贝到虚拟机
[root@room9pc01 ~]# scp -r /linux-soft/04/docker/ 192.168.1.12:/root/docker
[root@room9pc01~]# scp /linux-soft/05/gitlab_zh.tar 192.168.1.12:/root/docker
[root@room9pc01 ~]# mkdir /var/ftp/rhelosp
[root@room9pc01 ~]# ls /linux-soft/04/openstack/
]# mount /linux-soft/04/openstack/RHEL7-extras.iso /var/ftp/rhelosp/
]# vim /etc/fstab
1.1配置docker
安装
[root@room9pc01 ~]# virsh edit node2 //修改虚拟机的xml
<memory unit='KiB'>4488282</memory>
<currentMemory unit='KiB'>4488282</currentMemory>
[root@room9pc01 ~]# virsh destroy node2
[root@room9pc01 ~]# virsh start node2 //重新启动虚拟机
[root@room9pc01 ~]# ssh 192.168.1.12
[root@node2 ~]# free -h //查看内存
[root@node2 ~]# vim /etc/yum.repos.d/local.repo
[docker]
name=docker
baseurl="ftp://192.168.1.254/rhelosp"
enabled=1
gpgcheck=0
[root@node2 ~]# yum -y install docker //安装docker
[root@node2 ~]# systemctl restart docker
[root@node2 ~]# systemctl enable docker
[root@node2 ~]# docker images
[root@node2 ~]# ls -ll docker/
[root@node2 ~]# for i in docker/*.tar //把镜像导入docker容器内
> do
> docker load -i ${i}
> done
导入gitlab镜像
[root@node2 ~]# docker load < gitlad_zh.tar
修改虚拟机ssh端口为2022,因为22端口需要留给容器用
[root@node2 ~]# vim /etc/ssh/sshd_config
Port 2022
[root@node2 ~]# systemctl restart sshd
1.2重新使用2022端口远程连接服务器
[root@room9pc01 ~]# ssh -p2022 192.168.1.12
启动容器
[root@node2 ~]# docker run -d -h gitlab --name gitlab -p 443:443 -p 80:80 -p 22:22 --restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data:/var/opt/gitlab gitlab_zh:latest
b0fe8f743eb1bf21021a43407c7da71e808f1aef498aa040fa577e14c7365b3c
[root@node2 ~]# docker ps //当状态中,显示healthy时,容器才能正常使用
[root@node2 ~]# firefox http://192.168.1.12/
1.3初始化gitlab服务器
? 密码需大于8位
? 默认用户名为root
1.4添加gitlab项目
- 访问http://gitlab服务器
- 第一次访问需要为root用户设置密码,密码要求8位以上,复杂
- gitlab中重要的概念
- 组group:可以为一个团队创建一个组
- 成员member:创建用户,将用户加入到组中,成为组的成员
- 项目project:一个团队、一个用户都可以开发软件项目,软件项目不只一个,为每一个开发项目,在gitlab上创建一个project与之对应。
1.4.1
创建名为devops的组,组类型为公开
创建名为pro2的项目,属于devops组,类型为公开
创建用户时,创建用户时,不能为用户指定密码,但是能修改用户资料时,可以设置密码.
授权,授权新建的用户是pro2项目的主程序员
创建群组
创建项目
创建用户
? 创建用户后,再次编辑可设置密码
? root用户将新用户加入组中,并设置新用户为“主程序员”
? 新用户初次登陆,需设置自己的密码
用户管理
新用户不用配置任何选项,已经可以通过http协议进行代码的上传。但是,通过http上传代码,每次执行操作时,都需要填写用户名、密码
1.5配置ssh免密上传代码
? 将本地生成的公钥上传至服务器
-
生成ssh密钥
[root@node1 self1]# ssh-keygen -t rsa -C "lxh@tedu.cn" -b 4096
-
点击右上角用户“设置”
-
点击左侧工具栏的“ssh密钥”,将公钥拷贝到“密钥”文本框中
[root@node1 self1]# cat ~/.ssh/id_rsa.pub
1.6 上传代码到gitlad服务器
[root@room9pc01 nsd2019]# ssh 192.168.1.11
t@node1 self1]# cd ~/self1/
[root@node1 self1]# git remote rename origin old-origin
[root@node1 self1]# git remote add origin git@192.168.1.12:root/pro2.git
[root@node1 self1]# git push -u origin --all
1.7后续上传代码的过程
[root@node1 self1]# cp /etc/bashrc .
[root@node1 self1]# git status
[root@node1 self1]# git add .
[root@node1 self1]# git status
[root@node1 self1]# git commit -m "add bashrc" //提交代码
[root@node1 self1]# git push //上传代码
1.8其他用户下载代码:
-
协议应该使用http
-
第一次下载的时候,用git clone
-
后续如果有更新,只要git pull即可
[root@room9pc01 nsd2019]# ssh 192.168.1.13
[root@node3 ~]# cd /tmp/
[root@node3 tmp]# git clone http://192.168.1.12:root/pro2.git
[root@node3 tmp]# cd pro2/
[root@node3 pro2]# ls
abc bashrc hello.txt index.html redhat-release shadow
总结:
使用git时,如果不希望把某些文件,目录保存到到版本库,可以在项目目录下
创建一个名为.gitignore的文件,再把需要忽略的文件写进去。
```shell
[root@node5 pro2]# vim .gitignore
*.doc
*.docx
```
内容总结
以上是互联网集市为您收集整理的Python开发入门/搭建本地git/ 远程仓库gitlab全部内容,希望文章能够帮你解决Python开发入门/搭建本地git/ 远程仓库gitlab所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。