【无标题】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文件,这是新建的" //提交放到仓库里面 ![](https://i-blog.csdnimg.cn/direct/560a99a00b044b90aec2545218c11eec.png) 7.创建用户及邮箱 \[root@git yy000\]# git config --global user.name tjj \[root@git yy000\]# git config --global user.email [email protected] 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 ![](https://i-blog.csdnimg.cn/direct/2c780c40197541c4be2b28aeef00adcc.png) \[root@git yy000\]# echo "//我又加了一个注释" \>\> Test.java \[root@git yy000\]# git add . \[root@git yy000\]# git commit -m "将缓存中的内容提交到仓库" \[root@git yy000\]# git log ![](https://i-blog.csdnimg.cn/direct/028b433790b8473489c331b75552589b.png) 四.git的基本流程 ![](https://i-blog.csdnimg.cn/direct/23dcbab533cb49f6aaf1b605770cf773.png) ![](https://i-blog.csdnimg.cn/direct/0eaa7fa2154d4dbc9a12a9178bb421c3.png) 五.分支 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 ![](https://i-blog.csdnimg.cn/direct/79767647f6234de8ba1b767df4bc31dc.png) (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 ![](https://i-blog.csdnimg.cn/direct/f7cc2abc6d324f9b930f3a8363c7dff2.png) 刚才写入的内容没有了,是因为之前是在其他分支上操作的,并非在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 ![](https://i-blog.csdnimg.cn/direct/6b5ed8dba105443db6f982089ba70b47.png) \[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 ![](https://i-blog.csdnimg.cn/direct/6258f53e904c43a0adb7886dfe35e9f3.png) 这两个分支可以共享 \[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 \..." 以包含要提交的内容) # # 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 ![](https://i-blog.csdnimg.cn/direct/65e0247cf6904fe483032902cb665f8f.png) 删除分支(合并的情况下) \[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" ![](https://i-blog.csdnimg.cn/direct/ee145cba3708403692b1d776ed349830.png) 修改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 [email protected] 克隆192.168.2.30上的资料 \[root@git1 \~\]# git clone 192.168.2.30:/yy000/.git/ ![](https://i-blog.csdnimg.cn/direct/e51e6de875614feabca5e861ba4ead15.png) 修改内容 设置自己的姓名和邮箱 \[root@git1 yy000\]# git config --global user.name aaa \[root@git1 yy000\]# git config --global user.email [[email protected]++++](mailto:[email protected]) 修改内容 \[root@git1 yy000\]# touch A.class \[root@git1 yy000\]# git add . \[root@git1 yy000\]# git commit -m "aaaa" 第一次使用对方的项目 git clone 七.在码云上创建项目 ![](https://i-blog.csdnimg.cn/direct/4ac9b867efcb4166852291992a9c665d.png) \[root@git1 \~\]# git clone [smt: 用于仓库部署](https://gitee.com/qingdao-jia/smt.git "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

相关推荐
mazhafener1236 小时前
智慧照明:集中控制器、单双灯控制器与智慧灯杆网关的高效协同
大数据
打码人的日常分享6 小时前
物联网智慧医院建设方案(PPT)
大数据·物联网·架构·流程图·智慧城市·制造
Lansonli8 小时前
大数据Spark(六十一):Spark基于Standalone提交任务流程
大数据·分布式·spark
Rverdoser9 小时前
电脑硬盘分几个区好
大数据
傻啦嘿哟9 小时前
Python 数据分析与可视化实战:从数据清洗到图表呈现
大数据·数据库·人工智能
Theodore_10229 小时前
大数据(2) 大数据处理架构Hadoop
大数据·服务器·hadoop·分布式·ubuntu·架构
簌簌曌10 小时前
CentOS7 + JDK8 虚拟机安装与 Hadoop + Spark 集群搭建实践
大数据·hadoop·spark
冒泡的肥皂11 小时前
强大的ANTLR4语法解析器入门demo
后端·搜索引擎·编程语言
Theodore_102212 小时前
大数据(1) 大数据概述
大数据·hadoop·数据分析·spark·hbase
Aurora_NeAr12 小时前
Apache Spark详解
大数据·后端·spark