【无标题】Git(仓库,分支,分支冲突)

Git

一种分布式版本控制系统,用于跟踪和管理代码的变更

一.Git的主要功能:

二.准备git机器

修改静态ip,主机名

三.git仓库的建立:

1.安装git

[root@git ~]# yum -y install git

2.创建一个目录----用来放置git文件

[root@git ~]# mkdir /yy000

3.使用git指令,一定要cd到初始化之后的目录

cd到yy000目录中使用init指令初始化

[root@git ~]# mkdir /yy000

[root@git ~]# cd /yy000/

[root@git yy000]# ls

[root@git yy000]# git init  //将我们当前的目录变成一个工作区

4.初始化空的 Git 版本库于 /yy000/.git/

[root@git yy000]# vim Test.java  //添加一个文件

[root@git yy000]# ls

Test.java

5.[root@git yy000]# git add Test.java   //将Test.java放到缓存里面

6.[root@git yy000]# git commit -m "新建了一个Test.java文件,这是新建的"   //提交放到仓库里面

7.创建用户及邮箱

[root@git yy000]# git config --global user.name tjj

[root@git yy000]# git config --global user.email 3490805063@qq.com

8.修改Test.java文件,添加一行注释

[root@git yy000]# echo "//这是一行jav注释,不会被编译,能提交 文件的可读性" >Test.java

[root@git yy000]# git log  //查看日志

[root@git yy000]# git commit -m "这是第二次提交"

[root@git yy000]# git log

[root@git yy000]# echo "//我又加了一个注释" >> Test.java

[root@git yy000]# git add .

[root@git yy000]# git commit -m "将缓存中的内容提交到仓库"

[root@git yy000]# git log

四.git的基本流程

五.分支

1.查看当前仓库的分支

[root@git yy000]# git branch

* master   //当前只有一个master主分支,当工作完成后,其他的分支都会合并到主分支

要求abc三个人实现一个接口

一个文件在同一时间只能被一个用户编辑

2.格式:

创建分支

git branch 分支名称

git checkout -b 分支名称

跳转分支

git checkout 分支名称

删除分支(两个分支合并的情况下)

git branch -d 分支名

强制删除分支(即使该分 支尚未合并),可以使用以下命令

git branch -D 分支名

合并分支

git merge 分支名称

3.例子:

(1)[root@git yy000]# git branch abranch  //创建分支

[root@git yy000]# git branch   //查看分支

  abranch

* master

(2)切换到abranch分支上

[root@git yy000]# git checkout abranch

切换到分支 'abranch'

[root@git yy000]# git branch

* abranch

  master

[root@git yy000]# ls

Test.java

(3)[root@git yy000]# echo "我睡觉哦" >> Test.java  //写入内容并追加到Test.java文件中

[root@git yy000]# cat Test.java

(4)[root@git yy000]# git add .  //将分支写的内容提交到缓存

(5)[root@git yy000]# git commit -m "我提交的"  //提交新分支并注释为“我提交的”

[root@git yy000]# git checkout master

切换到分支 'master'

[root@git yy000]# git branch

  abranch

* master

[root@git yy000]# cat Test.java

刚才写入的内容没有了,是因为之前是在其他分支上操作的,并非在master

所以切换回master后,显示的内容只会是master分支上的内容

[root@git yy000]# git checkout -b bbranch   //-b在切换分支的同时创建分支

切换到一个新分支 'bbranch'

[root@git yy000]# git branch

  abranch

* bbranch

  master

[root@git yy000]# cat Test.java

[root@git yy000]# echo "我是b" >> Test.java

[root@git yy000]# git branch

  abranch

* bbranch

  master

[root@git yy000]# git  checkout abranch

M       Test.java

切换到分支 'abranch'

[root@git yy000]# cat Test.java

这两个分支可以共享

[root@git yy000]# git commit -m "aaa"

[root@git yy000]# git  checkout master

[root@git yy000]# mkdir abc

[root@git yy000]# ls

abc  Test.java

[root@git yy000]# touch efg

[root@git yy000]# git add abc/

[root@git yy000]# git commit -m "更像一个目录"

# 位于分支 master

# 未跟踪的文件:

#   (使用 "git add <file>..." 以包含要提交的内容)

#

#       efg

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

[root@git yy000]# git add efg

[root@git yy000]# git commit -m "新增了一个efg"

[master 6386f17] 新增了一个efg

 1 file changed, 0 insertions(+), 0 deletions(-)

 create mode 100644 efg

[root@git yy000]# git add .

[root@git yy000]# git commit -m "所有都提交"

当代码任务完成后,需要将更改合并回主分支。首先,切换回主分支

[root@git yy000]# git  checkout master

[root@git yy000]# git merge abranch  //在master里面把a修改的合并到master

[root@git yy000]# git log

删除分支(合并的情况下)

[root@git yy000]# git branch -d abranch  

[root@git yy000]# git branch -d bbranch  

[root@git yy000]# git branch -d cbranch  

[root@git yy000]# git branch

* master

六.分支冲突:

在合并的时候,有可能出现文件冲突(主分支修改了文件,zhangsan分支也修改了这个文件,两个分支都发生了修改,合并的时候,就不清楚以哪个分支为主,产生冲突)

手动解决:

[root@git yy000]# echo "//我是主分支" > Test.java

[root@git yy000]# git checkout -b newbranch

[root@git yy000]# echo "//我是nerbranch分支" >> Test.java

[root@git yy000]# git add .

[root@git yy000]# git commit -m "abcd"

[newbranch e71525b] abcd

 1 file changed, 2 insertions(+), 4 deletions(-)

[root@git yy000]# git checkout master

切换到分支 'master'

[root@git yy000]# cat Test.java

//这是一行jav注释,不会被编译,能提交文件的可读性

//我又加了一个注释

我睡觉哦

我是b

[root@git yy000]# echo "sdsdwsdew" > Test.java

[root@git yy000]# git add .

现在两个分支都有修改要将新分支合并到主分支

[root@git yy000]# git commit -m "cjdsbvdj"

修改Test.java文件

[root@git yy000]# vim Test.java

[root@git yy000]# git commit -m "cjdsbvdj"  //再次合并

[root@git yy000]# git log

git拉取:

再启动一台主机

安装git

Yum -y install git

做一个免密登录到git主机上

ssh-keygen

ssh-copy-id root@192.168.2.30

克隆192.168.2.30上的资料

[root@git1 ~]# git clone 192.168.2.30:/yy000/.git/

修改内容

设置自己的姓名和邮箱

[root@git1 yy000]# git config --global user.name aaa

[root@git1 yy000]# git config --global user.email aaa@163.com

修改内容

[root@git1 yy000]# touch A.class

[root@git1 yy000]# git add .

[root@git1 yy000]# git commit -m "aaaa"

第一次使用对方的项目  git clone

七.在码云上创建项目

[root@git1 ~]# git clone smt: 用于仓库部署

[root@git1 ~]# cd smt/

[root@git1 smt]# ls

README.en.md  README.md

[root@git1 smt]# mkdir -p src/main/java/

[root@git1 smt]# ls

README.en.md  README.md  src

[root@git1 smt]# touch src/main/java/Test.java

[root@git1 smt]# git add .

[root@git1 smt]# vim src/main/java/Test.java

[root@git1 smt]# vim src/main/java/Test.java

[root@git1 smt]# git add .

[root@git1 smt]# git commit -m “水蜜桃"

[root@git1 smt]# git push

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

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

相关文章

【策略工厂模式】记录策略工厂模式简单实现

策略工厂模式 1. 需求背景2. 代码实现2.1 定义基类接口2.2 排序策略接口定义2.3 定义抽象类&#xff0c;实现策略接口2.4 具体的排序策略实现类2.5 实现策略工厂类2.6 控制类 3. 启动测试4. 总结 1. 需求背景 现在需要你创建一个策略工厂类&#xff0c;来根据策略实现各种排序…

【JAVA】记录一次前端无能造成的 线上bug

有一个需求是 当方式切换 垫资时 清空 当前所选细单商品 但是前端的奇葩 操作是&#xff0c;只是在页面上清空 细单。 不请求 后台删除 细单 让前端 必须 清空同时 请求后台 删除细单 但是 该前端 技术不行&#xff0c; 嫌麻烦 不做 只好 后台 判断该类型时 进行删除操作…

AutoMQ 开源可观测性方案:夜莺 Flashcat

01 引言 在现代企业中&#xff0c;随着数据处理需求的不断增长&#xff0c;AutoMQ [1] 作为一种高效、低成本的流处理系统&#xff0c;逐渐成为企业实时数据处理的关键组件。然而&#xff0c;随着集群规模的扩大和业务复杂性的增加&#xff0c;确保 AutoMQ 集群的稳定性、高可…

权限管理的概述以及vue开发前端的路由、菜单、按钮权限控制实现方案

1. 权限管理概念 1.1 权限定义 权限管理是确保用户只能访问被授权资源的机制。在计算机系统中&#xff0c;权限通常指对特定数据或功能的访问权。权限的设置和控制对于保护数据安全和系统安全至关重要。 1.2 前端权限控制重要性 前端权限控制是用户与应用交互的第一道防线。…

黑马头条Day12-项目部署_持续集成

一、今日内容介绍 1. 什么是持续集成 持续集成&#xff08;Continuous integration&#xff0c;简称CI&#xff09;&#xff0c;指的是频繁地&#xff08;一天多次&#xff09;将代码集成到主干。 持续集成的组成要素&#xff1a; 一个自动构建过程&#xff0c;从检出代码、…

jdk版本管理利器-sdkman

1.什么是sdkman&#xff1f; sdkman是一个轻量级、支持多平台的开源开发工具管理器&#xff0c;可以通过它安装任意主流发行版本&#xff08;例如OpenJDK、Kona、GraalVM等等&#xff09;的任意版本的JDK。通过下面的命令可以轻易安装sdkman: 2.安装 curl -s "https://…

什么是 5G?

什么是 5G&#xff1f; 5G 是第五代无线蜂窝技术&#xff0c;与以前的网络相比&#xff0c;它提供了更高的上传和下载速度、更一致的连接以及更高的容量。5G 比目前流行的 4G 网络更快、更可靠&#xff0c;并有可能改变我们使用互联网访问应用程序、社交网络和信息的方式。例如…

通过 WSL 2 在Windows 上挂载 Linux 磁盘

原文查看 曾为了传输或者共享不同系统的文件频繁地在 Windows 和 Linux 系统之间切换&#xff0c;效率过低&#xff0c;所以尝试通过 WSL 2 在Windows 上挂载 Linux 磁盘。 先决条件 需要在Windows 10 2004 及更高版本&#xff08;Build 19041 及更高版本&#xff09;或 Win…

Redis 缓存

安装 安装 Redis 下载&#xff1a; Releases tporadowski/redis (github.com) winr ----services.msc-----将redis 设置为手动(只是学习&#xff0c;如果经常用可以设置为自动) 安装 redis-py 库 pip install redis-py Redis 和 StrictRedis redis-py 提供 Redis 和 Str…

UDP通信 单播,广播,组播

UDP通信实现 #include <sys/types.h> #include <sys/socket.h> ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); - 参数&#xff1a; struct sockaddr *src_addr, socklen_t *addrlen…

vue基础3

1.推荐好用的第三方框架 BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务 1.moment.js 2.dayjs 2.收集表达数据 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>Document</title><…

MyBatis-Plus自动生成代码

目录 前言一. 什么是 MyBatis-Plus1. Mybatis-Plus 的特点2. Mybatis-Plus 结构二. MyBatis-Plus 自动生成步骤1. 数据库准备2. 环境准备(1) 创建一个空的 Spring Boot 工程(2) 导入pom依赖(3) 编辑application.yml文件(4) 在启动类加入 @MapperScan 注解3. 配置代码4. 运行三.…

数据库安全:MySQL安全配置,MySQL安全基线检查加固

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 这一章节我们需要知道MySQL的安全基线标准和加固方式。 MySQL基线检查 1、更新…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 围棋的气(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

unity3d:TabView,UGUI多标签页组件,TreeView树状展开菜单

概述 1.最外层DataForm为空壳编辑数据用。可以有多个DataForm&#xff0c;例如福利DataForm&#xff0c;抽奖DataForm 2.Menu层为左边栏层&#xff0c;每个DataForm可以使用不同样式的MenuForm预制体 3.DataForm中使用ReorderList&#xff0c;可排列配置 4.有定位功能&#xf…

stl-set

目录 目录 内部自动有序、不含重复元素 关于能不能自己造一个cmp&#xff0c;还挺复杂。 访问&#xff1a;只能用迭代器且受限 添加元素&#xff1a;没有pushback&#xff0c;用insert 复杂度&#xff1a;ologn ​编辑 查找元素find&#xff08;&#xff09;&#xff1…

C++-入门(下)

一、前言&#xff1a; 目标&#xff1a; 1. C 关键字 2. 命名空间 3. C 输入 & 输出 4. 缺省参数 5. 函数重载 6. 引用 7. 内联函数 8. auto 关键字 (C11) 9. 基于范围的 for 循环 (C11) 10. 指针空值 ---nullptr(C11) 二、目标的实现&#xff1a; 6. 引用&#xff1a;…

后端开发工程师vue2初识的学习

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;JavaWeb关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 什么是Vue&#xff1f; Vue &#xff08;通常指 Vue.js&#xff09;是一个用…

Mybatis批量更新数据库错误

问题&#xff1a;记录一次使用Mybatis批量更新数据库的错误&#xff0c;错误信息&#xff0c;Error updating database. Cause: org.postgresql.util.PSQLException: 错误: 字段 "update_time" 的类型为 timestamp without time zone, 但表达式的类型为 text 建议&am…

【Unity动画】Animation Sequencer:动画制作的革新工具

在Unity游戏开发中&#xff0c;动画是提升玩家体验的关键因素。传统的动画制作方式往往耗时且复杂&#xff0c;但有了Animation Sequencer&#xff0c;这一过程将变得更加直观和高效。本文将介绍Animation Sequencer这一视觉工具&#xff0c;探讨其如何帮助开发者在Unity编辑器…