1586 字
8 分钟
git&gitlab简单讲解

什么是git#

Git 是一个分布式版本控制系统。你可以把它想象成一个极其强大的“时光机”和“协作工具”,专门用于管理你的文件(尤其是代码文件)的每一次改动。

git可以做什么#

  • 备份与回滚: 再也不用担心改错代码,可以轻松回到任何一个正常工作的时间点。

  • 协作开发: 多人可以在同一个项目上并行工作,最后再合并各自的功能,极大提升效率。

  • 分支管理: 你可以创建一个项目的“平行宇宙”(分支),在新分支上开发实验性功能,而不会影响主线(主分支)的稳定。功能完成后,再合并回主线。

  • 责任追溯: 每一行代码是谁、在什么时候、为什么修改的,都记录得清清楚楚。

git安装#

下载地址#

官方链接
关于git的详细安装方法网上有很多,大家可以自行搜索一下
一个下载教程链接

Git 常用命令速查表#

Git 命令功能说明
基础配置
git config --global user.name "用户名"设置全局用户名
git config --global user.email "邮箱"设置全局邮箱
git config --list查看所有配置
仓库操作
git init初始化本地仓库
git clone 仓库地址克隆远程仓库
git remote add origin 仓库地址添加远程仓库
基础工作流
git status查看状态
git add 文件名添加文件到暂存区
git add .添加所有文件到暂存区
git commit -m "提交信息"提交到本地仓库
git commit -am "提交信息"添加并提交所有已跟踪文件
查看信息
git log查看提交历史
git log --oneline简洁版提交历史
git reflog查看所有操作记录
git diff查看文件差异
分支管理
git branch查看分支
git branch 分支名创建分支
git checkout 分支名切换分支
git checkout -b 新分支名创建并切换分支
git merge 分支名合并分支
git branch -d 分支名删除分支
远程操作
git push origin 分支名推送到远程仓库
git push -u origin 分支名首次推送并建立关联
git pull origin 分支名拉取远程更新
git fetch origin获取远程更新
撤销操作
git reset --hard 版本号版本穿梭
git checkout -- 文件名撤销工作区修改
git reset HEAD 文件名撤销暂存区修改
git commit --amend修改最近一次提交

基本操作#

下面我演示一个通过git上传代码到github的案例#

alt text

如图右击你的项目,再点击标识的图标(这里如果没有的话可以选择更多选项里看看有没有)

这里说明一下,图上的bash是git专门提供的,其实我们正常的终端也可以使用git命令,但是在git的终端里可以使用一些linux的指令,如”ls,vimkdir,rm…“,而且还有文件的颜色区别,正常使用时在哪都可以

alt text

在上面输入 git init 并回车就可以完成初始化之后会有一个 .git 文件(没有的话可能被隐藏了,可以设置一下),接下来就可以方便的使用git提交并管理代码了

alt text

下面讲一下这个文件有什么用

  • 之后所有的版本都会放到.git文件夹中
  • 比拷贝省空间,第一次提交commit会都放进来,之后每一次commit只把修改的内容保存进来

alt text 这里创建一个文件并写入了一段’hello,world’

alt text 接下来我们需要连接到github上面创建的远程仓库 在图上类似git@github.com/yourregistory.git的为仓库的地址

alt text 接下来我们在终端git add 文件,可以使用 git status 来查看文件状态

alt text
再使用git commit (-m 参数可以添加一些备注)

alt text 上面git branch查看本地分支,再git push [远程分支] [本地分支]推送上去

alt text
然后就可以在我们的远程仓库里看到推送的文件

alt text

gitlab&自建仓库#

在上面我们使用的是github来保存我们的代码,其实我们也可以自己部署一个代码管理仓库,比如gitlab

需要注意的是gitlab非常吃内存,建议4GB以上的部署环境

镜像下载#

Terminal window
docker pull gitlab/gitlab-ce:latest

启动#

注意下面ip需要填写你自己的

Terminal window
docker run
--detach
--hostname 你的ip
-p 7001:7001 -p 7002:22 -p 7003:443
--name gitlab
--restart always
--volume ./config:/etc/gitlab
--volume ./logs:/var/log/gitlab
--volume ./data:/var/opt/gitlab
gitlab/gitlab-ce:latest

这里我也给一个compose的启动配置吧

services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: <你的ip> # 记得替换成真实的IP地址
ports:
- "7001:7001"
- "7002:22"
- "7003:443"
volumes:
- ./config:/etc/gitlab
- ./logs:/var/log/gitlab
- ./data:/var/opt/gitlab

可以看到上面的端口映射有三个, 这里我的理解是

第一个是http,访问多的也是这个 第二个是gitlabssh连接,这里容器内部使用ssh连接没有占用宿主机的22端口 第三个是https,如果配置了ssl证书就可以通过这个端口连接

修改配置#

启动之后需要修改配置,注意这个配置很重要,需要和启动的配置一致:700:7001

Terminal window
docker exec -it [你的容器id] /bin/bash
vi /etc/gitlab/gitlab.rb
## 然后修改 external_url 'http://你的ip:7001' 在第30行左右
# 更新配置
gitlab-ctl reconfigure
# 获取初始化密码
cat /etc/gitlab/initial_root_password

在这后需要等待几分钟


容器跑起来后需要查看初始密码,下面的路径是没问题的,但是你的容器名字要一致,也可以使用容器ID

初始账号就是root

Terminal window
docker exec -it gitlab cat /etc/gitlab/initial_root_password

登陆#

浏览器访问 [你的ip]:7001

展示

登陆后你可以创建一些新的用户,然后创建仓库,再往后就和github没什么区别了

结语#

git主要是作为一个代码工具来使用,在pycharm,vscode等idea上面都有图形化界面,甚至点一点就行了。

但是由git会衍生出很多其他的流程,比如cicd,仓库管理,发布流程,git更多是一个基础工具,但这些就非常重要的了

git&gitlab简单讲解
https://fuwari.vercel.app/posts/git-gitlab/git--shell编程/
作者
SiestaRem
发布于
2025-12-28
许可协议
CC BY-NC-SA 4.0