git代码管理学习文档

【代码管理的必备工具:Git的基本概念与操作详解】 不知道你工作或学习时,有没有遇到这样的情况:我们在编写各种⽂档时,为了防止⽂档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出⼀个副本,比如:“报告-v1”“报告-v2”“报告-v3”“报告-确定版”“报告-最终版”“报告-究极进化版”...每个版本有各自的内容,但最终会只有⼀份报告需要被我们使⽤。 阅读详情

       

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

代码管理git详细使用教程及最佳实践路径 Git 是一个 分布式版本控制系统,用于跟踪代码变更、管理代码历史、并支持多人协作开发。它由 Linus Torvalds 在 2005 年为 Linux 内核开发而创建,现在已经成为软件开发的标准工具。概念含义仓库(Repository)Git 存储代码的地方,可本地(Local Repo)或远程(Remote Repo)工作区(Working Directory)开发者正在编辑的代码所在目录暂存区(Staging Area)git add 后,文件进入暂存区,等待提交。 阅读详情

相关推荐

公司项目协作Git的使用

项目协作中使用git管理源码

weixin_42609581的博客 647

nexus3私库环境搭建(maven,yum,apt,nodejs)

目录一.nexus3私库环境搭建(maven,yum,apt,nodejs)1.jdk安装2.nexus软件安装3.修改配置4.启动,重启,停止5.访问测试二、maven,yum,apt,nodejs私库搭建 一.nexus3私库环境搭建(maven,yum,apt,nodejs) Nexus3是一个仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问,平常我们在获取maven仓库资源的时候,都是从maven的官方(或者国内的镜像)获取,但假如你的生产环境的服务器无互联网访问权限,此时需要在局域网

冰之杍的博客 2万+

maven私库 nexus-3.19.1-01-unix.tar.gz

nexus19年10月最新版本,可用于搭建maven私服私库,可用于搭建maven私服私库,可用于搭建maven私服私库。

Docker私库

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。...

m0_67401545的博客 1万+

Landsat9 地表温度反演方法

landsat9地表温度反演及缺失值处理方法

xiangliu12345的博客 3919

从零实现反激式电源仿真:LTspice高级应用实例

深入解析反激式开关电源的建模与仿真过程,利用LTspice实现从零搭建电路,精准验证电路仿真效果,提升电源设计效率与可靠性。

weixin_36149538的博客 1897

git学习

目标 本文档主要记录git的学习与使用

BraveExplorer的专栏 342

利用Nginx反向代理实现GitLab自定义域名的高效配置

本文详细介绍了如何利用Nginx反向代理实现GitLab自定义域名的高效配置。通过统一域名管理、性能优化和安全加固,提升GitLab的访问效率和安全性。文章包含前期准备、GitLab基础配置、Nginx反向代理设置及常见问题排查,帮助开发者快速完成部署。

weixin_28834169的博客 164

Git快速上手, 理解学习

写作初心, 便于自己以后的知识回顾,查阅,将自己所学的Git基本使用做个简单的总结和自己的理解整理分享给大家, 希望也能对大家可以有所帮助.

小杰312的博客 481

CPU核心、die和package的区别:从硬件小白到高手的进阶指南

本文深入浅出地解析了CPU核心、Die与Package的核心概念与区别,是硬件爱好者从入门到精通的实用指南。文章从硅晶圆制造讲起,阐述了物理核心与逻辑线程(如超线程技术)的工作原理,并详细介绍了封装(Package)的作用与多Die模块化设计。最后,结合实际应用场景,提供了选购、性能解读与优化调优的实用建议。

pz89012345的博客 203

实战复盘:一次绕过WAF的EDUSRC SQL注入漏洞挖掘

本文详细复盘了一次针对教育行业网站的SQL注入漏洞挖掘实战。通过手动信息收集发现可疑点,并利用‘+’号替换空格等技巧,成功绕过WAF(Web应用防火墙)的拦截。文章逐步演示了从判断注入点到手工获取数据结构、最终解密进入后台的完整过程,并总结了手工测试的优势及高级绕过思路,强调了在EDUSRC等授权范围内进行安全测试的重要性。

weixin_28622215的博客 191

java必备的官网链接

小bai必备开发工具 idea工具官网下载 https://www.jetbrains.com/idea/download/#section=windows 注:这些官网有时是打不开的哟 小bai必备官方文档 Maven——apahce依赖管理(英文) https://mvnrepository.com/artifact/org.apache.httpcomponents 微信官方文档 https://developers.weixin.qq.com/doc/ Layui开发使用文档 h

CDZAllier的博客 6860

Python中的字典(Dictionary)学习

上一章节,我们学习了列表(List) 和 元组(tuple) 来表示有序集合。而我们在讲列表(list)的时候,我们用了列表(list) 来存储用户的姓名。那么如果我们为了方便联系这些童鞋,要把电话号码也添加进去,该怎么做呢?但是这样很不方便,我们把电话号码记录下来,就是为了有什么事能及时联系上这些童鞋。如果用列表来存储这些,列表越长,我们查找起来耗时就越长。

热情、奔放、快乐编程! 503

JAVA 学习路线 学习大纲(java 进阶路线)

Spring MVC:跟开涛学SpringMvc(http://www.cnblogs.com/kaitao/archive/2012/07/16/2593441.html)Spring:跟开涛学Spring3(http://www.open-open.com/doc/view/5407635b943d410c9cfde409c90450b7)MyBatis:MyBatis实战教程(http://www.yihaomen.com/article/java/302.htm) MyBatis学习。

2509_93869617的博客 299

激光雷达与相机时间戳同步:原理、触发方案与工程实现

目录一、引言:时间不同步,多传感器融合必出问题二、核心原理:相机成像机制与触发模式(同步的基础)2.1 相机成像的两个核心阶段:曝光与读出(1)非交叠曝光(2)交叠曝光2.2 相机触发模式:内触发 vs 外触发(1)内触发(2)外触发2.3 关键信号:Strobe信号与预输出(同步的核心技巧)三、三种主流时间戳同步方案(工程落地首选)3.1 方案一:统一硬触发(精度最高,高端场景首选)核心原理核心配置要点优缺点适用场景3.2 方案二:软触发+硬触发(Strobe预输出,车载量产首选)核心原理核心配置要点优缺

getusushu的博客 200

【MATLAB代码】UKF组合导航例程,15维状态量、3维观测量。附完整的代码,有中文注释、误差输出图像

摘要 本文提出了一种基于15维误差状态模型的UKF组合导航算法,实现了三维位置、速度和姿态的高精度估计。算法采用严格的误差状态模型,包含位置(3)、速度(3)、姿态(3)、陀螺偏差(3)和加速度计偏差(3)共15个状态量,通过3维GNSS位置观测进行校正。仿真结果表明,相比纯IMU积分,UKF算法能有效抑制误差积累,显著提高导航精度。文中提供了完整的MATLAB源代码,可直接运行并复现三维轨迹对比、位置/速度曲线及误差分析结果。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 312

从零开始做一个开源项目学习笔记

以下笔记总结于 “慕课网” 双越 老师 确定做什么 想要知道做什么先明白开源的期望 做什么 举例 重要的是你选出来了 确定做什么 想要知道做什么先明白开源的期望 快速做出第一版,至少能用。后面慢慢迭代。 要能方便的推广使用,最好是0成本使用(例如框架不是0成本使用)。 自己开源做得快,别人用的也快。 做什么 小而精的工具。开...

Scarborough_Coral的博客 4760

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

探索NBDime:Jupyter Notebook的差异比较与版本控制工具

探索NBDime:Jupyter Notebook的差异比较与版本控制工具 去发现同类优质开源项目:https://gitcode.com/ 在数据科学和机器学习领域中,Jupyter Notebook是大家广泛使用的交互式环境。然而,当多个用户协作或个人进行迭代开发时,如何有效地进行代码和文档的版本控制成为了一个挑战。这就是NBDime(Notebook Diff and Merge)出场的...

gitblog_00071的博客 1388

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

iOS快速开发技巧:7技巧加快你的开发

iOS快速开发技巧:7技巧加快你的开发英文原文链接:http://code.tutsplus.com/tutorials/ios-quick-tip-7-tips-to-speed-up-your-development--mobile-18581大多数开发者一直在寻找着各种方法来改善或者自动化他们的工作流程,用一个简单的脚本来执行常见任务或通过开发工具的各种快捷键来实现这样...

weixin_33888907的博客 93

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jenkins学习

这篇文章大概写于三个月前,当时写了个大纲列表,但是在优快云上传资源实在不方便,有时上传了莫名审核不通过,如果以前有人上传过,也会导致上传失败。现在把之前工作中找到的好东西和各位分享。现在不搞这些了,也算是个归档吧。内容主要涉及Hudson/Jenkins的使用,维护,以及插件开发,开发的东西更多些吧。 首先说下Jenkins能干什么?说下两个典型的应用场景。 1. Git/Repo + ...

zhuliang1673的专栏 223

寒假学习内容总结

css引入方式,字体, 文本水平对齐方式,选择器,快捷语法,背景相关属性,元素显示模 式,css特性之继承性、层叠性css特性之优先级,PxCook使用,盒子模型,外边距折叠现象(合并现象和塌陷现象)结构伪类选择器,伪元素,标准流,浮动学成网首页复刻定位,装饰精灵图,背景图片大小,文字阴影,盒子阴影,过渡小兔鲜主页复刻。

STATICHIT静砸的博客 518

git学习站点

http://git-scm.com/doc

wuxiaobingandbob的专栏 509

Git官网资源与学习指南

官网文档是系统学习 Git 的最佳起点。同时,许多优质教程(如菜鸟教程 、GitHub 官方帮助等)和书籍也能助你一臂之力。这里是获取 Git 官方信息、文档和工具的最权威来源。确保下载的安装包适用于你的操作系统(Windows、macOS 或 Linux)和位数(32位或64位)。对于国内用户,从 Git 官网下载速度可能较慢。Git 的官方网站是。等提供的链接下载。

BillKu的博客 931

GIT 学习笔记

GIT 学习笔记 --- 思维导图

weijinhua_123的博客 458

【Tools】Git学习

今天整理收藏夹,发现几个很好的Git学习网站,分享一下 点击学习文章二 点击学习文章三 点击学习文章四 文章五:Why Git is better than SVN 一个在线演练Git的网站

记录学习成长之路,进一寸有进一寸的欢喜 280
上一篇: Javascript学习之路:页面位移、大小和位置属性整理
下一篇: Apipost检测接口工具的基本使用方法
@德玛玩前端
博客等级 码龄5年 413粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值