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 https://gitee.com/qingdao-jia/smt.git
[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