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
root@git1 smt# mkdir -p src/main/java/
root@git1 smt# ls
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