文章目录
- [1. 理解分布式版本控制系统 Git](#1. 理解分布式版本控制系统 Git)
- [2. 远程仓库](#2. 远程仓库)
-
- [2.1 新建远程仓库](#2.1 新建远程仓库)
- [2.2 克隆远程仓库](#2.2 克隆远程仓库)
- [2.3 向远程仓库推送](#2.3 向远程仓库推送)
- [2.4 拉取远程仓库](#2.4 拉取远程仓库)
-
- [1)git pull 拉取命令](#1)git pull 拉取命令)
- 2)拉取操作
- [3. 配置 Git](#3. 配置 Git)
-
- [3.1 忽略特殊文件](#3.1 忽略特殊文件)
-
- [1)git check-ignore 检查是否被忽略命令](#1)git check-ignore 检查是否被忽略命令)
- [2)添加 .gitignore 文件的办法](#2)添加 .gitignore 文件的办法)
-
- 一)初始化时选择选项
- [二)手动添加 .gitignore 文件](#二)手动添加 .gitignore 文件)
- [3.2 给命令配置别名](#3.2 给命令配置别名)
-
- [1)git config alias. 起别名命令](#1)git config alias. 起别名命令)
- 2)试验
- [4. 标签管理](#4. 标签管理)
1. 理解分布式版本控制系统 Git
目前所说的所有内容(工作区,暂存区,版本库等等),都是在本地!也就是在自己的笔记本或者计算机上。而 Git 其实是分布式版本控制系统!
分布式版本控制系统 Git 的核心特点是每个开发者在本地都拥有一个完整的代码仓库副本,包括代码的完整历史记录。在 Git 中,每个开发者在克隆(clone)仓库时,都会获得一个完整的仓库副本,包括所有分支、标签和提交记录。这意味着即使没有网络连接,开发者也可以在本地进行开发操作。
分布式版本控制系统 Git 通常也有一台充当"中央服务器"的电脑,用来方便"交换"大家的修改,有了这个"中央服务器"的电脑,这样就不怕本地出现什么故障了。
2. 远程仓库
Git 是分布式版本控制系统,同一个 Git 仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以 "克隆" 这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
下面将用码云https://gitee.com/作为远程仓库的相关内容讲解
2.1 新建远程仓库
打开链接,注册登录账号后,在右上角+号选择新建仓库,并填写各种选项,其中特别注意的是合并的操作: git 的merge是危险的,需要进行一个PR(合并申请单Pull Request),管理员同意才能完成合并


2.2 克隆远程仓库
将远程仓库复制到本地仓库中,这里首先讲解一些指令,然后通过2种方法讲解克隆:
1)一些指令
一)git clone 克隆命令
主要功能是从远程仓库(如 GitHub、GitLab、码云等)获取完整的代码仓库副本,包括代码文件、提交历史、分支和标签等。克隆完成后,你在本地会得到一个完整的 Git 仓库,可以独立进行开发操作。
bash
git clone [Https:xxxx]
二)git remote 命令
用于管理远程仓库的命令,允许你查看、添加、修改和删除与本地仓库关联的远程仓库地址。
bash
git remote # 查看远程仓库名
git remote -v # 列出所有远程仓库的名称和对应的 URL
git remote show origin # 展示远程分支情况
git remote prune origin # 移除陈旧的本地分支,之后再自行删除多余的本地分支即可
2)克隆的两种办法
一)HTTPS协议
对使用没有什么特殊要求,直接 git clone 即可

二)SSH协议
SSH 协议使用了公钥加密和公钥登陆机制,体现了其实用性和安全性,使用此协议需要将公钥放上服务器,由 Git 服务器进行管理,才能配置成功。
在码云的个人点击设置,左侧有安全设置->SSH公钥,在此添加公钥(标题可以随便起)。不添加直接克隆就会报错。
配置SSH的方法可以直接参考码云提供的办法,点击克隆/下载,选择SSH,就可以看到码云的教程,这里要注意的是一定要完成提交代码身份配置,否则可能会存在提交上的问题。


在centos中按照1(一直回车即可)、2步输入指令,然后将打印出来的全部复制到码云SSH公钥中提交,之后就可以正常克隆了。

2.3 向远程仓库推送
1)配置
提交时要注意,如果我们之前设置过全局的 name 和 e-mail,这两项配置需要和 gitee 上配置的用户名和邮箱一致,否则会出错。这就需要重新配置下,并要注意需要和 gitee 上配置的用户名和邮箱一致。
2)git push 推送指令
将本地分支的提交记录同步到远程仓库的对应分支,它会将本地分支的新提交推送到远程分支,更新远程仓库的状态。
如果分支是一样的话,[本地分支名称]:[远程分支名称]中后面的远程分支名称可以不用写
bash
git push <remote-name> <branch-name>:<remote-branch-name>
git push # 建立连接后可以直接用段命令
git push origin <newbranch> # 本地分支创建连接后直接push该分支到远端,就可以在远端创建该分支并建立连接
3)推送操作
在本地仓库中新建文件夹,添加提交到仓库后,用 git push origin master:master 推送到远端仓库,这时就可以在仓库中看到记录了


注意:
本地仓库和远端仓库之间一定要有联系才能相互沟通,而这个联系其实在克隆仓库时就会自动生成
2.4 拉取远程仓库
远程仓库要是领先于本地仓库一个版本,为了使本地仓库保持最新的版本,需要拉取下远端代码,并合并到本地。
1)git pull 拉取命令
将本地分支的提交记录同步到远程仓库的对应分支,它会将本地分支的新提交推送到远程分支,更新远程仓库的状态。
bash
git pull <remote-name> <branch-name>:<remote-branch-name>
git pull # 也可以直接pull,前提是已经建立了连接
2)拉取操作
首先直接在码云上修改test.txt(只是为了演示,一般情况下都不能在远端直接修改),远程仓库就领先一个版本,然后用 git pull origin master:master 指令拉取即可

3. 配置 Git
3.1 忽略特殊文件
在日常开发中,有些文件不想或者不应该提交到远端,比如保存了数据库密码的配置文件,那怎么让 Git 知道呢?在 Git 工作区的根目录下创建一个特殊的 .gitignore 文件,然后把要忽略的文件名填进去,Git 就会自动忽略这些文件了。
1)git check-ignore 检查是否被忽略命令
用于检查指定的文件或路径是否被 .gitignore
文件中的规则忽略
bash
git check-ignore <filename>
2)添加 .gitignore 文件的办法
一)初始化时选择选项
创建仓库时选择初始化仓库,就可以自动添加 .gitignore 文件

二)手动添加 .gitignore 文件
在仓库根目录下创建 .gitignore 文件,然后进入编辑,编辑规则如下:
bash
# #是注释
# 忽略的文件有几个要推送
# 使用 ! ,表示排除规则,用于取消忽略某个文件或目录
# / 表示目录分隔符,指定路径
# 忽略的文件
*.so # *匹配任意字符,直接写文件里代表忽略该文件(以.so结尾)
file/ # 忽略当前目录下file文件夹及里面全部内容
/file/*.tmp # 忽略file目录下所有.tmp文件
# 不忽略的文件
!b.so # 不忽略b.so文件
# 忽略隐藏文件
.* # 忽略以.开头的隐藏文件
!.gitignore # 排除 .gitignore 文件本身
此时创建a.so
,b.so
,并都写入hello git
,查看状态发现没有修改过a.so
,所以 .gitignore
就生效了

检查a.so
为什么被忽略了,用 git check-ignore -v a.so
指令查看

还有一个办法可以强制添加提交,用 git add -f c.so
强制推送,但不太好,会破坏.gitignore
规则,因此不推荐使用

3.2 给命令配置别名
在我们使用 Git 期间,有些命令太长了,而git支持对命令进行简化!
1)git config alias. 起别名命令
可以给命令起别名,方便简短输入,支持 --global
选项全局修改
bash
git config --global alias.<别名> <命令>
2)试验
通过 git config --global alias.st status
为status起别名,初学不建议起别名

4. 标签管理
标签tag ,可以简单的理解为是对某次 commit 的一个标识,相当于起了一个别名。例如,在项目发布某个版本的时候,针对最后一次commit 起一个 v1.0 这样的标签来标识里程碑的意义。另外相较于难以记住的commit id , tag 很好的解决这个问题,因为tag 一定要给一
个让人容易记住,且有意义的名字。当我们需要回退到某个重要版本时,直接使用标签就能很快定位到。
4.1 一些指令
1)git tag 标签指令
用于创建、列出、删除或验证标签
-a
创建带有注释的标签选项
-d
删除本地标签选项
bash
git tag # 查看所有标签
git tag <tagname> # 对最新一次提交创建标签
git tag <tagname> <commit id> # 对之前提交的id创建标签
git tag -a <tagname> -m "message" # 创建带有注释的标签
git tag -d <tagname> #删除本地标签
2)git show 查看标签指令
查看标签详细信息,需要注意的时,该命令的打印并非按照创建时间进行排序,而是按照名称进行排序
bash
git show <tagname> # 查看标签的详细信息(特别是带注释的标签)
3)git push origin 推送标签指令
将本地标签推送到远程仓库
bash
git push origin <tagname> # 推送指定标签
git push origin --tags # 推送全部标签到远程仓库
git push origin :<tagname> # 删除远程仓库标签语法1
git push origin --delete <tagname/branch> # 删除远程仓库标签语法2,但本地标签还会存在,该命令也可删除远程分支
4.2 本地标签操作
1)创建标签
用 git tag v1.0
创建标签,再用 git tag
查看标签创建情况。再次查看 .git
就可以看到 .git/refs/tags
出现了标签的信息,打印 v1.0
可以看到对象字符串,此时通过 git log --pretty=oneline --decorate
可以发现就是最新一次提交


那么怎么对之前的提交打标签呢?首先要先知道之前的提交的id,用 git log --pretty=oneline --abbrev-commit
查看之前的id,然后用 git tag -a <tagname> <commit id> -m "message"
对之前的进行打标签并进行描述

2)查看标签
那么怎么才能查看描述的标签信息呢?用 git show <tagname>
查看

3)删除标签
直接用 git tag -d <tagname>
删除即可

4.3 推送标签操作
1)推送标签
将本地标签推送到远程仓库,用 git push origin <tagname>
命令进行推送,如果想一次性全部推送,用 git push origin --tags
命令即可,此时远程仓库就可以看到了

2)删除远程标签
在删除本地标签的基础上,再次使用 git push origin :<tagname>
命令推送到远程仓库就可以完成删除了,此时远程仓库对应的标签就被删除了


仓库首页图片如下:

以上就是Git的使用技巧,更多知识可以参考Git参考文档:git参考文档https://git-scm.com/docs