git代码管理学习文档

       

1.版本控制

每一版本都会发生变化

更新版本,回退版本

版本控制实际就是控制文件的变化

服务器端和每个人的电脑上都会记录版本的变化,也就是说整个团队都记录了版本的变化。

不需要连网,他是分布式的,在自己电脑上也可以操作。


2.安装和使用Git

查看git软件是否安装:在git命令行(打开方式->进入项目根目录->右键->git bash here)下执行

git –version

(单击右键,查看是否有gitbash命令)

  • 配置用户信息 用户名 电子邮箱(第一次使用的时候配置)

配置用户名称和电子邮箱地址,以在commit log中体现->表明这个文档这个项目是谁来做的。  

修改:重新运行该命令

git config —global user.name ‘teduweb’

git config —global user.email  ‘web@tedu.com’

  • 查看已有的git配置信息

git config --list

  • 进入项目文件夹,初始化git仓库(用来存储各个版本)

git init 会生成一个.git目录(隐藏的),用于记录所有的版本

  • 查看当前工作目录的状态

git status

  • 往暂存区中添加文件

git add 文件名称  添加个别文件

git add . 添加所有文件到暂存区

  • 把暂存区文件添加到本地仓库

git commit -m ‘提交的说明’

如果项目中发生修改,再执行git.status

再次执行,git add.  git commit  -m 添加了新的版本 

  • 查看提交的日志(记录提交多少次)

git log   查看当前版本以及当前版本以前的版本提交记录

git reflog  查看所有提交记录

  • 从本地仓库中回退到指定的版本(到工作目录中)

git  reset  --hard 提交的ID HEAD表示当前的版本

ID是一种编码的

  • 屏幕清除

clear

  • 忽略文件(不需要提交到本地仓库的文件可以忽略)

在工作目录下 使用编辑器创建  .gitignore文件(记录哪些文件不需要提交)

把不需要提交的文件或目录(结尾加/表示目录下的所有文件)添加到.gitignore中,就不再往git仓库提交,可以执行git.status查看是否要提交该文件,一般情况下,node_modules不需要提交到git仓库。

当 git add . 往暂存区添加文件,可以看到忽略该warning,这是由于虽然windows系统下操作,但是要按照linux系统标准来执行造成的。$ git commit -m‘添加了包说明文件’ 添加到本地仓库,即又一个版本。

  • 分支操作

如果想在主分支的基础上建立其他分支,必须把主分支先传入暂存区(git add .),再传入本地仓库(git  commit -m ‘第一次提交’ )。

git branch 查看当前所有分支

git branch  分支名称   创建一个新的分支,把当前所有的分支拷贝,作为一个副本。

git checkout  分支名称  切换分支

例如:

创建文件product.html商品模块

文件要提交到商品分支本地仓库(前提要切换到该分支下查看)

$git checkout product $git add . $git commit -m ‘商品模块开发完毕’

回到主分支下,工作目录里就看不见该文件,Product.html在商品分支下

  • 创建用户分支

1.先创建分支,再切换到该分支下

2.工作目录里创建html文件

3.分支下操作完看状态

4.提交分支

$git add .

$git commit -m ‘用户模块开发完毕’

5.查看

6.回到主分支下

git merge 分支名称    在当前分支基础之上,将另一个分支并入进来 

git branch -d 分支名称  删除已经合并的分支

git branch  -D 分支名称  强制删除分支,分支没有合并


3.远程仓库

Github全球最大的代码托管平台

网址:www.github.com

码云 国内最大的代码托管平台

网址:www.gitee.com

介绍:git的廉价平替 服务器在国内,运行不废劲,在国内也形成了一定的规模,git的一些项目插件在码云上可以找的到

(1) 使用gitHub  花钱不公开

注册

登录

先创建仓库

远程仓库地址:https://github.com/huwenhao006/mytedu.git

回到本地工作目录打开gitbash,推送项目到giHub

git  push -u  远程仓库地址   分支名称       推送到远程地址

上传完成

团队协作:添加团队成员

邀请的用户登录个人邮箱,然后邮箱确认,就可以共同管理项目

(2)使用gitee     操作和gitHub一样,花钱不公开

注册

登录

新建仓库

填写仓库信息,私有依然收费

获取地址

git  push -u  远程仓库地址   分支名称       推送到远程地址

输入用户名和密码

推送成功

如果验证密码写错,第二次推送是已经记录过的,还是推送不过去,怎么去改?

Window+R->control打开控制面板->用户账户,凭据管理器->windows凭据->普通凭证->删除


4. 团队协同

团队协作:添加团队成员

邀请的人登录码云,会看到私信里通知被邀请,接受邀请就能进入团队。

被邀请的人加入团队后:

1,本地新建目录,右击gitbash打开命令行

git clone  远程仓库地址   第一次下载下来

git pull   远程仓库地址   从远程仓库拉取代码(其他时候需要远程仓库代码)

其他人也可以克隆,但是没有上传权限,团队成员可以上传

2.克隆下来以后,被邀请的人就能在项目的基础上进行开发,然后利用团队成员的权限  进行上传。

3. 远程仓库和本地代码同步(配置公钥)

1.仓库与本地同步->建立公钥

为什么要建立公钥->公钥是你当前设备和网络仓库的通路

只要创建了这条通路,才能实现仓库和本地代码同步

2.把仓库同步到本地

  • 1.在gitee上新建仓库,进入需要同步的仓库,点击克隆
  • 2.点击复制ssh地址
  • 3.到需要同步网络仓库的本地位置,打开gitBashhere
  • 4.输入命令 git clone[复制的ssh地址]

3.在本地仓库中创建vue脚手架项目

  • 1.到本地仓库所在的文件夹中创建 vue  create xxxx
  • 2.项目名称尽量和仓库名称保持一致(仓库名称不要有大写字母)

因为会提示:创建的项目文件夹已经存在,选择merge(合并)

4.把本地仓库中的项目同步到远程仓库gitee上

在本地项目中打开gitbush

gitstatus 看变化(不必要的操作)

gitadd . 把本地仓库变化的文件提交到暂存区

gitcommit -m ‘提交说明’ 提交本地仓库

注释:提交说明写明所写代码的用处

gitpush 把缓存中的内容推到网络仓库中

 5.git分支操作步骤

一、拉取IMDP_V100R001C00分支

1、新建一个目录,例如 d:/work/spms3.0/IMDP_V100R001C00,用于330版本修改bug

2、在这个目录下运行git bash

2.1 首先fork自己的私库:

git clone

如:git clone http://10.88.40.177:8099/306205/spms-integration-core.git

2.2 然后增加主库的信息:

cd

如:cd spms-integration-core

git remote add

如:git remote add upstream  http://10.88.40.177:8099/spms-integration/spms-integration-core.git

2.3 然后拉取主库的分支:

git fetch

如:git fetch upstream

git checkout -b /

如:git checkout -b IMDP_V100R001C00 upstream/IMDP_V100R001C00

2.4然后上传到私库

git push origin

如:git push originIMDP_V100R001C00

这样私库中就会有这个分支了。之后330的bug修复就在这个目录下进行。

二、拉取dev分支

1、新建一个目录,例如d:/work/spms3.0/dev,用于dev分支的开发。

2、在这个目录下运行git bash

2.1 首先fork自己的私库:

git clone

如:git clone http://10.88.40.177:8099/306205/spms-integration-core.git

2.2 然后增加主库的信息:

cd

如:cdspms-integration-core

git remote add

如:git remote add upstream http://10.88.40.177:8099/spms-integration/spms-integration-core.git

2.3 然后拉取主库的分支:

git fetch

如:git fetchupstream

git checkout -b /

如:git checkout -bdev upstream/dev

2.4然后上传到私库

git push origin

如:git push origin dev

这样私库中就会有这个分支了。之后dev的开发就在这个目录下进行。

三、代码提交、推送和合并请求

代码提交和推送,都要按照当前分支进行,即:   IMDP_V100R001C00分支只允许提交和推送到私库的IMDP_V100R001C00分支      dev分支只允许提交和推送到私库的dev分支

提交合并请求(merge request,MR)时,也要注意,私库的IMDP_V100R001C00分支只允许合并到主库的IMDP_V100R001C00分支,私库的dev分支只允许合并到dev分支。

主库各个项目的负责人(maintainer)要负责首先审核是否对应同样的分支,如果不对应则直接拒绝;然后再检视代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/251096.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

优质全套SpringMVC教程

三、SpringMVC 在SSM整合中,MyBatis担任的角色是持久层框架,它能帮我们访问数据库,操作数据库 Spring能利用它的两大核心IOC、AOP整合框架 1、SpringMVC简介 1.1、什么是MVC MVC是一种软件架构的思想(不是设计模式-思想就是我们…

过滤器和监听器及应用

Filter及应用 Filter有什么用?一、Filter处理中文乱码二、监听器,统计网站在线人数1.监听器引入2.统计网站在线人数 三、Filter实现权限拦截 Filter有什么用? Filter:过滤器,可以用来过滤网站的数据。 比如处理中文乱码,每次写servlet&…

[Verilog] Verilog 基本格式和语法

主页: 元存储博客 全文 3000 字 文章目录 1. 声明格式1.1 模块声明1.2 输入输出声明1.3 内部信号声明1.4 内部逻辑声明1.5 连接声明1.6 数据类型声明1.7 运算符和表达式1.8 控制结构 2. 书写格式2.1 大小写2.2 换行2.3 语句结束符2.4 注释2.5 标识符2.6 关键字 1. 声…

VM虚拟机打不开原来保存的虚拟机文件夹ubuntu

VMWare虚拟机打不开原来保存的虚拟机文件夹ubuntu 换了电脑把之前的虚拟机克隆的文件夹直接拿来用 报这个错: 指定的文件不是虚拟磁盘 打不开磁盘“D:\ubuntu_iso\ubuntu_location\Ubuntu 64 位-s002.vmdk”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未…

图像生成算法评估指标

IS P(y|x)分布越尖越好,说明他质量好,能够被模型很好的识别;P(y)表示生成n张图片的概率的均值,越平说明每个类别生成越平均,说明多样性好;IS越大说明这两个分布差别越大,…

php查询数据库,并通过表格展示

第一步:创建数据库 创建一个数据库php-crud 第二步:创建数据库表 在数据库php-crud下创建一个歌曲表song /*Navicat Premium Data TransferSource Server : MariaDBSource Server Type : MariaDBSource Server Version : 100605 (10.6.5-M…

HarmonyOS给应用添加消息通知

给您的应用添加通知 通知介绍 通知旨在让用户以合适的方式及时获得有用的新消息,帮助用户高效地处理任务。应用可以通过通知接口发送通知消息,用户可以通过通知栏查看通知内容,也可以点击通知来打开应用,通知主要有以下使用场景…

nodejs微信小程序+python+PHP技术下的音乐推送系统-计算机毕业设计推荐

音乐推送系统采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,  本文设计了一款音乐推送系统,系统为人…

PrimDiffusion:3D 人类生成的体积基元扩散模型NeurIPS 2023

NeurIPS2023 ,这是一种用于 3D 人体生成的体积基元扩散模型,可通过离体拓扑实现明确的姿势、视图和形状控制。 PrimDiffusion 对一组紧凑地代表 3D 人体的基元执行扩散和去噪过程。这种生成建模可以实现明确的姿势、视图和形状控制,并能够在…

CSS margin-trim

margin-trim 主角登场主角的局限性兼容性 margin-trim &#x1f9ea;这是一个实验性的属性, 目前仅有 Safari 支持 看这个属性的名字就知道, 外边距修剪. 平常都会遇到一些排版上的问题, 比如垂直排列的元素之间增加下外边距 <div><li>123</li><li>…

方差分析实例

目录 方差分析步骤 相关概念 基本思想 随机误差 系统误差 组内方差 组间方差 方差的比较 方差分析的前提 1.每个总体都应服从正态分布 2.各个总体的方差必须相同 3.观察值是独立的 原假设成立 备择假设成立 单因素方差分析 提出假设 检验的统计量 水平的均值…

SpringBoot2

将SpringBoot项目打包 将打好的jar包发给前端&#xff08;前端只需要安装jdk&#xff09; 在jar包所在目录执行dos命令&#xff1a;java -jar xxx.jar&#xff0c;就可以启动项目 也可以在命令后面修改配置&#xff0c;例如&#xff1a;java -jar xxx.jar --server.port8081&…

【MySQL】启动 和 连接 MySQL

启动停止 mysql安装成功后在cmd输入 net start mysql80 //启动 net stop mysql80 //停止 mysql连接 方式1. 通过客户端去连接 方式2.使用cmd去连接 描述&#xff1a;-u是指定 用户 -p是指定密码 mysql -u root -p password

哈希扩展:位图与布隆过滤器

目录 1. 位图1.1 位图引入1.2 位图概念1.3 位图的模拟实现1.4 位图相关问题1.5 位图的应用 2. 布隆过滤器2.1 布隆过滤器概念2.2 模拟实现2.3 布隆过滤器相关问题2.3.1 哈希切分 1. 位图 1.1 位图引入 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&…

MySQL,分组order by

一、创建分组 ## 创建分组 -- 返回每个发布会的参会人数 SELECT event_id,COUNT(*) as canjia_num FROM sign_guest GROUP BY event_id; 1、group by子句可以包含任意个列&#xff0c;但是但指定的所有列都是一起计算的。 group by 后2个字段一起计算的 2、group by后面可以跟…

QT Widget - 随便画个圆

简介 实现在界面中画一个圆, 其实目的是想画一个LED效果的圆。代码 #include <QApplication> #include <QWidget> #include <QPainter> #include <QColor> #include <QPen>class LEDWidget : public QWidget { public:LEDWidget(QWidget *pare…

正态总体的假设检验

一、三种情况 1.均值μ的假设检验 (1)σ已知 (2)σ未知 2.方差σ的假设检验 二、例题

Docker部署wordpress和Jenkins

准备机器&#xff1a; 192.168.58.151 &#xff08;关闭防火墙和selinux&#xff09; 安装好docker服务 &#xff08;详细参照&#xff1a;http://t.csdnimg.cn/usG0s 中的国内源安装docker&#xff09; 部署wordpress: 创建目录&#xff1a; [rootdocker ~]# mkdi…

【Java JVM】运行时数据区

JVM 在执行 Java 程序的过程中会把它管理的内存分为若干个不同的数据区域, 这些区域有着各自的用途。 根据《Java虚拟机规范》中规定, JVM 所管理的内存大致包括以下几个运行时数据区域, 如图所示: 这个运行时数据区被分为了 5 大块 方法区 (Method Area)堆 (Heap)虚拟机栈 (V…

Facebook广告系统结构

Facebook广告系统是一个复杂的大型系统&#xff0c;由多个组件和子系统相互配合工作&#xff0c;实现了广告的投放、拍卖、个性化推荐和效果评估等功能。下面小编讲讲Facebook广告系统的结构。 1、广告管理界面 广告管理界面是广告主与Facebook进行交互的入口&#xff0c;广告…