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)要负责首先审核是否对应同样的分支,如果不对应则直接拒绝;然后再检视代码。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos离线安装mosquitto

1.x86_64架构centos7操作系统mosquitto包 本次真正要安装的机器是x86_64架构的AMD Ryzen 3 ,操作系统是centos7 先找一台能联网的centos7机器 添加 EPEL 软件库 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm下载rpm包 …

《PySpark大数据分析实战》-12.Spark on YARN配置Spark运行在YARN上

📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP…

Rabbitmq消息重复消费问题(幂等性保障)

消息百分百投递架构 在《消息可靠性保证》篇章中,我通过生产者确认机制保障了消息会发送到MQ中,但是在生产者与MQ建立过程的时候出现了网络抖动,连接建立失败,生产者就感知不到MQ返回的ack/nack,无法完全保障消息投递…

modbus 通信协议介绍与我的测试经验分享

1、简介 Modbus 协议是一种通信协议,用于工业自动化系统中的设备间通信。该协议最初由 Modicon 公司开发,并于 1979 年发布。 Modbus 协议通过串行通信格式进行通信,在物理层上支持 RS-232、RS-422 和 RS-485 等多种通信方式。在协议层面&am…

Kotlin ArrayList类型toTypedArray转换Array

Kotlin ArrayList类型toTypedArray转换Array data class Point(val x: Float, val y: Float)fun array_test(points: ArrayList<Array<Point>>) {points.forEachIndexed { idx, ap ->ap.forEach {print("$idx $it ")}println()} }fun main(args: Arra…

verilog语法进阶-分布式ram原语

概述 官方提供的原语 RAM16X1S_1 #(.INIT(16h0000) // Initial contents of RAM) RAM16X1S_1_inst (.O(O), // RAM output.A0(A0), // RAM address[0] input.A1(A1), // RAM address[1] input.A2(A2), // RAM address[2] input.A3(A3), // RAM address[3…

pytest之allure测试报告02:allure具体使用方法

一、allure包含的方法 二、allure使用教程 &#xff08;1&#xff09;用例中写入allure方法 allure.epic("数据进制项目epic") allure.feature("手机号模块feature") class TestMobile:allure.story("杭州的手机号story")allure.title("测…

Selenium安装WebDriver:ChromeDriver与谷歌浏览器版本快速匹配_最新版120

最近在使用通过selenium操作Chrome浏览器时&#xff0c;安装中遇到了Chrome版本与浏览器驱动不匹配的的问题&#xff0c;在此记录安装下过程&#xff0c;如何快速找到与谷歌浏览器相匹配的ChromeDriver驱动版本。 1. 确定Chrome版本 我们首先确定自己的Chrome版本 Chrome设置…

如何从众多知识付费平台中正确选择属于自己的平台(明理信息科技知识付费平台)

在当今的知识付费市场中&#xff0c;用户面临的选择越来越多&#xff0c;如何从众多知识付费平台中正确选择属于自己的平台呢&#xff1f;下面&#xff0c;我们将为您介绍明理信息科技知识付费平台相比同行的优势&#xff0c;帮助您做出明智的选择。 一、创新的技术架构&#…

【linux】Debian不能运行sudo的解决

一、问题&#xff1a; sudo: 没有找到有效的 sudoers 资源&#xff0c;退出 sudo: 初始化审计插件 sudoers_audit 出错 二、可用的方法&#xff1a; 出现 "sudo: 没有找到有效的 sudoers 资源&#xff0c;退出" 和 "sudo: 初始化审计插件 sudoers_audit 出错&q…

IDEA中alt enter不显示创建实现类快捷键

alt enter不显示创建实现类快捷键是因为idea中的设置没打开&#xff0c;按照一下设置打开就可以了。 点击setting-->>editor-->>intentions-->>java下的declaration 如下图所示&#xff1a;

【C++干货铺】继承后的多态 | 抽象类

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 多态的概念 多态的定义和实现 多态的定义条件 虚函数 虚函数的重写 特殊情况 协变&#xff08;基类和派生类的虚函数返回值不同&#xff09; 析构函数的重…

深度学习中的预测图片中的矩形框、标签、置信度分别是什么意思。

问题描述&#xff1a;深度学习中的预测图片中的矩形框、标签、置信度分别是什么意思。 问题解答&#xff1a; 目标框&#xff08;Bounding Box&#xff09;&#xff1a; 描述目标位置的矩形边界框。 类别标签&#xff1a; 表示模型认为目标属于哪个类别&#xff08;例如&#…

【Java JVM】实例对象内存布局

当 Java 应用启动后, 基本就是在不断的创建对象, 回收对象的过程中。 而这些创建的对象基本都是存放在应用的堆 (heap) 中, 但是这些对象在堆中又是什么样子的呢? 在这篇文章中, 我们分析一下 Java JVM 中实例对象的内存布局。 在 HotSpot 虚拟机里, 对象在堆内存中的存储布局…

结构体基础全家桶(2)结构体指针

目录 指向结构体类型数据的指针&#xff1a; 指向结构体变量的指针&#xff1a; 创建&#xff1a; 应用&#xff1a; 注意事项&#xff1a; 指向结构体数组的指针 创建&#xff1a; 应用&#xff1a; 注意&#xff1a; 用结构体变量和指向结构体的指针做函数的参数 …

eNSP小实验---(简单混合)

实验目的&#xff1a;实现vlan10 vlan20 172网段用户互访 1.拓扑图 2.配置 PC1 其它同理 SW4 <Huawei> <Huawei>u t m Info: Current terminal monitor is off. <Huawei>sys <Huawei>sys Enter system view, return user view with CtrlZ. [Hua…

深度学习小白学习路线规划

作为深度学习的初学者&#xff0c;以下是一个建议的学习路线&#xff0c;可以帮助你逐步掌握图像分类、目标检测与跟踪、实例分割和姿态估计&#xff1a; 掌握这些&#xff0c;计算机视觉算是入门了&#xff01; 1. 基础知识&#xff1a; 学习Python编程语言&#xff0c;它是…

当在VMware Workstation Pro 中查询不到ens33网卡的IP

在学习中我们经常要去查询ens33的IP&#xff0c;但是有时候会查询不到&#xff0c;今天就遇到了这样的问题并且找到了解决方法 记录一下 ip a 查询不到IP 显示代码为 ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether …

[论文笔记] GAMMA: A Graph Pattern Mining Framework for Large Graphs on GPU

GAMMA: A Graph Pattern Mining Framework for Large Graphs on GPU GAMMA: 基于 GPU 的针对大型图的图模式挖掘框架 [Paper] [Code] ICDE’23 摘要 提出了一个基于 GPU 的核外(out-of-core) 图模式挖掘框架(Graph Pattern Mining, GPM) GAMMA, 充分利用主机内存来处理大型图…

〖大前端 - 基础入门三大核心之JS篇(55)〗- 内置对象

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…