当前位置: 首页 > news >正文

Git 用法

基本介绍

版本控制工具用处:

  • 备份
  • 代码还原
  • 协同开发
  • 追溯

版本控制工具

1、集中式版本控制工具

        版本库是集中存放在中央服务器的,team 里每个人 work 时从中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交到中央版本库。
        举例:SVN 和 CVS

2、分布式版本控制工具

        分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,不需要联网,因为版本库就在自己的电脑上。多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了
举例:Git

工作流程

2 常用命令

2.1 获取本地仓库

2.2 基础操作指令

        Git 工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行 Git 的命令而发生变化:

git add (工作区 --> 暂存区)

touch newtext.txt

新建文件(linux指令)

git add .

把 所有工作区的文件 添加到 暂存区

现在是待提交状态

git commit (暂存区 --> 本地仓库)

git commit -m "wyn01"

查看状态

git log 查看提交日志

命令形式:git log [option]
options:

  • --all 显示所有分支
  • --pretty=oneline 将提交信息显示为一行
  • --abbrev-commit 使得输出的commitId更简短
  • --graph 以图的形式显示

注:按 q 键退出

2.3 版本回退


git reset --hard commitID

commitID 可以使用 git log 指令查看

3 分支

        几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的 Bug 修改、开发新的功能,以免影响开发主线

3.1 查看本地分支

git branch

3.2 创建本地分支

git branch 分支名

3.3 切换分支

git checkout 分支名

在新的分支中加新的文件 secondtext.txt

回到主分支,新文件没了

另外,还可以直接切换到新的分支(创建):

git checkout -b 分支名

3.4 合并分支

git merge 分支名称

在分支【master】里面文件写

a=1;
b=2;
printf(a+b);

在分支【branch01】里面文件写

a=1;
b=2;
printf(a*b);

然后合并

有冲突

a=1;
b=2;
<<<<<<< HEAD
printf(a+b);
=======
printf(a*b);
>>>>>>> branch01
 

需要手动处理,然后 git add、git commit 提交

3.5 删除分支

不能删除当前分支,只能删除其他分支

删除分支时,需要做各种检查

git branch -d 分支名

不做任何检查,强制删除

git branch -D 分支名


3.6 开发中分支使用原则与流程

  • master (生产) 分支

        线上分支,主分支,中小规模项目作为线上运行的应用对应的分支

  • develop(开发)分支

        是从 master 创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到 master 分支,准备上线

  • feature/xxxx分支

        从 develop 创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到 develop 分支

  • hotfix/xxxx分支

        从 master 派生的分支,一般作为线上 bug 修复使用,修复完成后需要合并到 master、test、develop 分支


        还有一些其他分支,在此不再详述,例如 test 分支(用于代码测试)、pre 分支(预上线分支)等等

4 GitHub

4.1 添加 SSH key

4.2 创建 github repository

获取项目的仓库地址

在 git bash 里面:

git remote add 远程仓库名 git@github.com:RainNan/test.git

git remote

用于查看远程仓库

4.3 Push & Pull

push

将本地仓库的更改推送到远程仓库

git push origin master

pull

用于从远程仓库拉取最新的更改并合并到本地仓库

git pull origin master

4.4 clone

git clone 远程仓库地址

4.5 .gitkeep

        .gitkeep 是一个通常在空的 Git 仓库目录中创建的文件,其主要目的是保持该目录在 Git 仓库中。在 Git 中,空目录不会被跟踪,因此如果你想 让一个目录被 Git 跟踪 ,但又不想在该目录中添加任何其他文件,就可以创建一个名为 .gitkeep 的文件

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • blender和3dmax和maya和c4d比较
  • 各类专业技术的pdf电子书
  • SmartX 超融合 vs vSAN 8:数据库场景下的性能对比
  • 塔子哥的快乐值-美团2023笔试(codefun2000)
  • 静态路由技术
  • 内存卡损坏读不出怎么修复?内存卡数据恢复的7个方法请收好!
  • ubuntu23安装tensorRT步骤记录
  • linux(CentOS、Ubuntu)安装python3.12.2环境
  • Java 集合框架:HashMap 的介绍、使用、原理与源码解析
  • 在学习使用LabVIEW的过程中,需要注意哪些问题?
  • Python 3 网络编程
  • 时效性知识点是否值得花时间学习和研究
  • 【合并两个有序链表】
  • 房间里灰尘多总是清理不干净怎么办?专业空气净化器快速除尘
  • IoTDB 分段查询语句详解:GROUP BY + 时序语义
  • [译]如何构建服务器端web组件,为何要构建?
  • Git同步原始仓库到Fork仓库中
  • Gradle 5.0 正式版发布
  • Invalidate和postInvalidate的区别
  • JavaScript函数式编程(一)
  • JS专题之继承
  • laravel5.5 视图共享数据
  • Linux后台研发超实用命令总结
  • Linux链接文件
  • Netty源码解析1-Buffer
  • React中的“虫洞”——Context
  • Vue.js 移动端适配之 vw 解决方案
  • 浮动相关
  • 马上搞懂 GeoJSON
  • 区块链将重新定义世界
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 算法---两个栈实现一个队列
  • 微信公众号开发小记——5.python微信红包
  • 微信小程序填坑清单
  • 以太坊客户端Geth命令参数详解
  • ionic入门之数据绑定显示-1
  • Java数据解析之JSON
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • $.each()与$(selector).each()
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (day 12)JavaScript学习笔记(数组3)
  • (二)hibernate配置管理
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (三)uboot源码分析
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)C#调用WebService 基础
  • (转)nsfocus-绿盟科技笔试题目
  • .NET : 在VS2008中计算代码度量值
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net core使用RPC方式进行高效的HTTP服务访问