ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Git远程开发操作指南

Git远程开发操作指南

Git本地开发操作指南-CSDN博客

目录

一,远程操作

1.1 分布式版本控制系统

1.2 创建远程仓库

1.3 克隆远程仓库

1.3.1 HTTPS克隆

1.3.2 SSH克隆

1.4 向远程仓库推送

1.5 拉取远程仓库

1.6 关于本地和远程分支

1.6.1 两端分支的连接

1.6.2 短 push 和 pull 指令

1.6.3 建立两端分支连接

1.6.4 删除陈旧分支

1.7 忽略特殊文件

1.8 配置命令别名

二,标签管理


1.1 分布式版本控制系统

Git 是分布式版本版本控制系统,上面链接里的所有操作其实都是在我们自己的电脑上面操作的,我们每个人的电脑都是一个完整的版本库。

而一个公司肯定不止一个电脑,所以也就意味着不止一个独立的版本库,但是如果这些独立的版本库之间各自进行交流很明显效率低下,所以一个公司肯定是需要有一个大的版本库,相当于这个大的版本库就是master分支,其它的版本库都是其它分支

但是这个大的版本库可能不会与各个小的版本库在同一个局域网内,比如可能有同事出差在外地开发这种情况,所以我们就需要通过远程操作来把我们的成功同步到master分支

优点:能提高各版本库之间的交流,比如A版本库做出的更改同步到了这个大的版本库,版本库C、D甚至其它更多的版本呢库也能看到A做出的修改,极大提高效率;并且如果A的版本库或者电脑出毛病了导致版本库没了,也可以直接把大的版本库复制粘贴过去完成补救措施

1.2 创建远程仓库

由于github需要饭强,所以我们用国内的 gitee 来演示:工作台 - Gitee.com

创建好账号后,我们直接创建仓库:

然后填写部分信息

然后就是仓库的初始状态:

这些内容的功能这里就不详细介绍了,后面接触到会讲解

1.3 克隆远程仓库

1.3.1 HTTPS克隆

在仓库页面右边,会有一个 “克隆/下载” 按钮:

点进去后会有很多链接:

这些都是Git提供的常用的数据传输协议,我们主要介绍 https 和 ssh 两种

直接先复制一下上面的HTTPS协议,然后回到Linux命令行,使用下面命令克隆远程仓库:

git clone

然后进去这个目录里面就会有我们上面网页里仓库页面那些文件了:

然后我们可以使用下面命令查看仓库一些信息:

git remote [-v]

1.3.2 SSH克隆

ssh协议使用的是一个公钥加密和公钥登录的一个机制,要使用ssh协议需要先将我们本地服务器上的公钥放到git服务器上来进行管理才能克隆成功

下面是操作步骤:

①创建公钥和私钥(如果已经有可以跳转至下一步)

判断目前我们Linux系统是否有公钥和私钥,就是看下我们用户主目录下是否有 .ssh 这个文件,如果没有则需要创建:

ssh-keygen -t -rsa -C "你的邮箱"

②查看 .ssh 目录

进入 .ssh 目录查看是否有id_rsa和id_rsa.pub这两个文件,前者是私钥,要好好保护不能外露,后者是公钥不需要隐私保护

然后我们cat先打印公钥的内容,然后复制到我们 gitee 网页的公钥即可:

然后输入密码即可添加,然后就可以通过ssh链接克隆仓库了:

1.4 向远程仓库推送

推送操作其实就比我们本地add和commit操作多了一步push操作,用于将我们本地的master分支提交到了远程仓库的master分支下

首先查看我们当前仓库的配置项:

注意,这个配置项的用户名和邮箱必须要和我们远程仓库中的一致,远程仓库的用户名可以在个人主页页面头像正下方找到,如果本地和远程不一致,需要修改本地和远程一样:

然后回到本地仓库,创建文件并提交:

然后push向远程仓库推送:

git push origin master:master

然后回到gitee刷新页面就能看到我们推送的文件了

1.5 拉取远程仓库

我们本地的修改push到远程了,那我们远程的修改如何同步到我们本地呢

这里为了模拟我们直接在远程仓库添加文件了,以后的开发不建议更改码云上的任何内容

然后回到本地,使用拉取命令:

git pull origin master:master

和推送一样,会先将文件拉取到我们本地,然后和我们本地的目标分支合并

1.6 关于本地和远程分支

1.6.1 两端分支的连接

使用下面命令可以查看一些分支的其它信息:

git branch -r

  • 加上 -r 选项可以查看我们目前本地的版本库里的分支和远程仓库分支的关系
  • 以上面图片为例,由于目前只有master一个分支,所以HEAD指针自然指向master
  • 后面的-> origin/master 则表示我们目前的master分支正在和远程仓库的master分支关联
  • 也正是因为这个,所以我们在master上面提交的内容可以push到远程仓库里去

在后面加上 -a 选项,可以查看目前版本库所有的三类分支:

git branch -a

1.6.2 短 push 和 pull 指令

前面我们使用 push 和 pull 进行推送和拉取操作的时候,都在后面带上了 origin 表示远程以及带上了需要进行操作的远程和本地的分支名

这里我们不带那些东西,直接使用 git push 和 git pull:(git pull同理,这里只展示git push)

git push 是隐式推送,依赖本地推送和远程推送的关联关系,会直接推送本地分支的修改到绑定的远程分支,所以可以推送成功,pull同理,本地同样也可以用短pull指令直接同步远程的修改

1.6.3 建立两端分支连接

假设我在远程创建一个dyk1分支,然后再在本地创建dyk1分支,此时我们直接用短push推送会怎么样?

先在远程创建分支:

再在本地创建分支,然后提交文件并使用短 push:

此时我们可以用它提示我们的命令来建立连接:

git push --set-upstream origin dyk1 //该命令会自动建立本地分支与远端同名分支的连接,如果远端不存在则创建

此时再使用短push就可以成功了,pull同理:

1.6.4 删除陈旧分支

我们先直接在远程仓库删除dyk1分支:

但是我们在本地打印远程分支的时候,依然还会显示:

可以先使用下面命令查看远程分支一些状态:

git remote show origin

然后再执行他给我们的命令即可删除陈旧分支:

git remote prune origin

1.7 忽略特殊文件

①如何忽略?

在开发中不是需要把所有文件全部同步上去,比如保存了私钥的文件,或者数据库密码配置文件等需要隐私保护的文件,如何让Git忽略这些文件呢

在创建仓库的时候,有一个初始化仓库的配置项

这个 .gitignore 文件作用就是这个,我们把需要忽略的文件的文件名填写进去,Git就会自动忽略这些文件了,可以在创建仓库时选择这个,也可以在我们本地的git根目录手动创建

然后我们创建对应的文件后,可以发现 git 没有追踪管理这些文件

而没有追踪的文件自然不会被add和commit提交,也就不会被push了

②强制提交

如果我反悔了,我就是想让这个隐藏文件提交,也是可以的,需要下面命令:

git add -f test.cc //强制添加

成功提交

推送也成功

③如何不被忽略?

④查看被忽略原因

有时候代码会很多,导致我们想提交的文件被忽略掉了,我们可以使用下面命令来查看文件被忽略原因:

git check-ignore -v 被忽略的文件名

1.8 配置命令别名

一行代码即可

git config --global alias.st status // 表示对status 起了一个 st 的别名,后面就可以直接使用 git st 了 // 不建议别名和已有的命令名重复

二,标签管理

标签,tag,在Git中表示对 commit 的一个标识,有什么用呢?比如我们每次提交的commit id都是很长一串不重复字符,假设有一次提交很重要,而且后面很需要通过这个提交的commit id再次定位到这次提交,那么我们就可以给这个 commit id 起一个别名,后面直接用标签就可以很快定位到了

①创建标签

git tag v1.0

会默认给我们最新的一次提交打上标签

如果要对其它的提交打标签,需要在后面带上具体的 commit id

我们打标签的时候照样可以对标签进行描述:

git tag -a 标签名 -m "描述" [commit id]

查看描述:

git show 标签名

②删除标签

也只需要一行命令

git tag -d 标签名

③推送标签

我们可以将我们本地的标签推送至远程仓库

git push origin [标签名|--tags]

也可以在本地删除标签,然后再push到远程

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进