Git的使用

背景

作者是Linux之父,因为吐槽SVN难用,所以就自己开发了一个。

版本控制工具

版本控制工具主流的有

  • git
  • svn

我们要学习的git,版本控制工具就是可以帮助我们将代码进行备份存档,当我们想要用某个版本时,可以直接读档,读取对应的代码。并且解决了和同事间一起开发合并代码的问题。

Git的前期准备

下载

Git

因为服务器是国外,下载很慢,所以可以腾讯软件中心。

【Git下载】2023年最新官方正式版Git免费下载 - 腾讯软件中心官网

安装

Git的安装及其简单,虽然配置很多,但是默认全部下一步即可,注意!!!!安装路径不要有中文。

测试是否安装成功

安装成功后,右键会有Git Bash Here,我们也可以使用windows自带的终端。

window + R,输入cmd打开终端,然后输入git

如果说提示

'git' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

表示没有安装成功。

注意问题

一会大家在提交的时候,可能会出现提交不了的情况,因为git在下载后,需要先配置下自己的用户名和邮箱

需要在git bash里输入这些

git config --global user.name "用户名"
git config --global user.email "邮箱地址"

Git原理

git本地仓库原理

使用Git

我们需要把一个文件夹变成一个Git仓库

初始化git仓库

我们要使用下面的命令进行仓库的初始化操作。

git init

在我们要初始化成仓库的文件夹中,右键,打开git bash here

在打开的窗口中输入 git init回车

初始化完成后,如果我们开启隐藏文件,会看到里面有.git文件夹

我们也可以使用VSCode进行可视化操作

打开VSCode的第三个选项源代码管理

点击初始化仓库

等待片刻即可初始化完成

文件状态

当我们添加,修改,删除某些文件时,我们的源代码管理中就会有对应文件的更改记录

对应的源代码管理的图表上就会出现角标显示文件更改的数量。点开之后可以查看具体信息

后面的u代表了不同的状态。更改的文件不在暂存区,需要我们进行暂存。

暂存文件

第一种方式 命令的方式

使用git add .可以快速暂存所有的文件,如果我们只想暂存某个或者某些文件

git add 文件名 文件名2

第二种方式 VSCode可视化操作

点一下对应的+即可让VSCode帮我们执行git add .的命令

文件后也有暂存的按钮,可以单独暂存某个文件。

提交文件

第一种方式 命令的方式

输入git commit -m "提交信息"

第二种方式 VSCode可视化操作

直接暂存后,输入提交信息,然后点击提交即可。

查看自己的提交记录

我们通过git log命令查看我们的提交记录

我们也可以有更好的可视化的方案,在VSCode中安装一个插件

安装后,在源代码管理中会新增一个图标

点击即可打开一个可视化的提交记录界面。

临时查看之前版本代码

git history插件中,点击对应提交记录的more,然后渲染checkout

选择后,左下角的分支就会变成对应的hash值

如果想切回到主代码,点击左下角的分支名,选择master即可。

Git分支

Git中可以有很多分支,数量不限。分支的目的是进行隔离开发,让同一个项目的开发者之间互不影响,最终我们会把分支上的代码合并到某一个分支上。

master分支是主分支(默认分支)git初始化后自带的分支(因为master有一个对黑人不好的含义,所以Github就把主分支命名为main分支了)

一般开发分为以下几类分支

  • master 主分支 所有人都不会直接在这上面修改代码。
  • develop 开发分支 开发时共同维护的分支,代码有bug,所有人也都不会直接在这上面修改代码
  • feature-功能 功能分支 如果你负责某个功能,你就在这个项目上的develop分支上创建出自己的功能分支进行开发。开发完成后合并到develop上
  • release-版本分支 从合并后的develop上进行创建的分支,由测试人员测试,开发人员解决问题,解决的同时,要将代码合并到develop上。最终可见bug修复完成后,能够进入到发布流程。合并到master
  • hotfix-版本 从master上检出新的分支 hotfix-版本 修复bug后合并到master和develop上。

命令操作

创建分支

master在初始化时自动生成。

创建分支使用git branch

git branch 分支名

切换分支

检出分支(checkout)

git checkout 分支名

如何检出的同时创建分支

git checkout -b 分支名

VSCode可视化

点击VSCode左下角的master

在打开的窗口中选中第一个,按回车

然后输入分支名

按回车后,自动检出新分支

想要看到所有的分支记录,需要在git history的面版中的第二个下拉框选择 All branches

远程仓库

远程仓库解决了代码同步的问题,如果我电脑上的仓库删除,那么我的仓库就彻底没了。

所以在本地的基础上就有了远程的概念,大家所有人的代码,都放在云端。

远程仓库有很多很多类:

  • 国内 Gitee
  • 国外 Github
  • 国外 GitLab
  • 国内 Coding
  • 还有很多很多……

不管用什么,我们一定需要有一个远程仓库地址。

使用远程仓库

  1. 我们已经在本地仓库中开发了了一段时间了,我们现在想把代码上传到云端
  2. 我们还没有项目,现在云端创建一个项目,在本地方法

第一种情况

在Gitee上新建仓库

点击后,填入相关信息

点击创建

在已经开发了一些的项目中,运行命令。

添加远程仓库

git remote add origin 你的远程仓库的地址

输入 git push -u origin "master"然后回车(这个master是分支名,如果我想上传其他分支,就切换到其他分支,然后写其他分支的名字)

输入用户名(邮箱)和密码。(就是我们注册Gitee的邮箱和密码)

注意!!!!这里的用户名密码,这辈子只需要输入一次。他们会被保存到电脑“凭据管理器”

如果别人已经在你的电脑保存过他的密码,可以把其中的gitee的账号密码删除

确定后看到命令行中出现下列界面表示成功

VSCode操作更简单

然后把远程仓库的地址粘进去回车即可。

然后发布分支。

然后在远程就可以看到我们的发布的远程分支了

第二种情况

创建项目后,获得到远程仓库的地址。使用克隆命令,克隆到本地

git clone 远程地址

进行提交操作后

点击这两个圈的任意一个,就可以把本地仓库最新提交的内容上传到远程仓库

# 上传远程仓库也可以用命令的方法
git push

远程版本高于本地

本地需要拉取远程版本

git pull

个人项目我们应该怎么Git维护

  1. 在远程创建一个项目
  2. 克隆到本地
  3. 进行开发
    1. 完成一个功能 提交 (尽量多次提交)
    2. 功能完成后 push到远程
  1. 我们在多个地方进行开发
    1. 不管在哪开发,我们都要离开前push
    2. 换一个新的环境,如果没有项目则克隆,如果有项目,但是不是最新,要git pull

必须要会的操作

克隆、暂存、提交、推送、拉取

远程仓库和本地仓库的关系

如果想要把一个远程仓库下载到本地,我们需要使用克隆

git clone 远程仓库地址

本地已经有仓库,只是比远程仓库中少一部份内容,要进行同步

git pull

本地仓库比远程的仓库内容多,要进行同步

git push

当我们完成某个小功能时

git add . # 暂存
git commit -m "提交信息" # 提交到本地仓库

git push # 提交到远程仓库

使用Git到公司后我们应该干嘛

到公司后先要项目源码

  • 公司的git仓库是自己搭建的
  • 公司的git仓库借助了目前主流的 Gitee Github Coding

自己搭建的

要自己的账号,让管理员把你拉到对应的项目中

借助了其他的仓库

先看自己有没有账号,如果有则告知管理员,把你加入到项目中。如果没有账号,则自己注册账号,然后发给管理员,让他把你加入到项目中。

公司项目

如果你是项目负责人

  • 在远程仓库中新建项目
  • 把开发者邀请到项目中
  • 下载项目并创建对应的分支
  • 制定规范

创建合适的分支

一个项目默认有master,应该再创建develop分支,作为开发时合并的分支。

要求团队中开发者根据自己功能创建自己的功能分支。

如果我是项目开发者

  1. 先从develop分支创建自己的功能分支
  2. 然后写自己的功能
    1. 提交
    2. 推送
    3. 循环a b 直到功能结束
  1. 切换到develop分支上,然后合并我们的分支

合并分支

先同步一下代码(哪怕没有新的更新)

切换到develop分支上,然后点击

在打开的窗口中,点我们的功能分支。

如果没有冲突,就直接推送即可

合并冲突

当多个人同时修改同一个文件时,未来提交会冲突。

冲突文件后会有一个叹号。

点击后,找到上面类似的相关的结构

问:如果你们合并时代码冲突了怎么办?

答:我们借助开发工具VSCode中的功能,如果合并有冲突,在对应的代码上VSCode会提供三个选项,保留当前代码,保留传入代码,都保留,我们开发者之间沟通,了解需要保留的代码然后选择合适的选项,最后进行提交推送集合。

忽略文件

.gitignore文件,可以实现对仓库中某些文件的忽略

在项目中新建一个.gitignore文件

# 忽略文件
文件名
# 忽略文件夹
文件夹名/
# 忽略文件夹中的文件
文件名/文件名

学习命令

Learn Git Branching

合并merge和变基rebase的区别

两者都能实现把代码合并的功能,前者合并后提交记录在不同的分支上,后者在一条分支上,看起来更简洁。

变基操作更复杂

合并

合并需要切换到版本低的分支上,然后git merge 版本高的分支

变基

切换到develop分支,然后变基到自己的分支上,然后其他一样的操作,就能让develop分支保持最新,包含所有人的代码

git rebase 分支名

Git中不同角色的分工

管理员

  1. 创建项目
  2. 克隆项目
  3. 创建合适的分支
  4. 变身成为开发者

开发者(这个就是我们的工作,其他的不管)

  1. 克隆项目(如果电脑上没有项目时做的事情)
  2. 切换到开发分支
  3. 创建一个分支(功能分支)feature-xxx
  4. 开发
    1. 暂存
    2. 提交
    3. 推送
    4. 循环上面三步直到功能完成
  1. 切换到develop,然后拉取最新的develop分支
  2. 和我们的自己的feature分支进行合并。

版本发布者

  1. 从最新develop上创建一条新的分支 release-v版本号。
  2. 测试进行测试,测试出来的问题由对应的人员进行修复
  3. 把修复后的代码,合并到develop上。直到所有的可见bug修复完成
  4. 合并到master上
  5. 打上一个标签

热修复

  1. 从master上创建一条新分支hotfix-v版本号
  2. 修复bug
  3. 将代码合并到master和develop
  4. 打上标签

45个 GIT 经典操作场景,专治不会合代码

SSH地址的使用

如何生成ssh公钥

生成/添加SSH公钥 - Gitee.com

ssh-keygen -C "邮箱地址"  

生成的地址在

生成公钥后,把公钥加入到对应的ssh列表中。

把上面生成的公钥用VSCode打开,复制粘贴即可

点击确定添加。

首次进行Git克隆时,会进行询问

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值