目录
[1.Git 分布式版本控制系统:](#1.Git 分布式版本控制系统:)
[2.创建分支,跳转分支(所有的git操作都应该工作在,指定的init 目录下进行)](#2.创建分支,跳转分支(所有的git操作都应该工作在,指定的init 目录下进行))
[4.在码云上创建项目,进行pull 和 push:](#4.在码云上创建项目,进行pull 和 push:)
1.Git 分布式版本控制系统:
1.安装git
[root@13git ~]# yum -y install git
2.创建目录,进行初始化
[root@13git ~]# mkdir /yy000
[root@13git ~]# cd /yy000/
[root@13git yy000]# ls
[root@13git yy000]# git init
初始化空的 Git 版本库于 /yy000/.git/
[root@13git yy000]# ls -a
. .. .git
[root@13git yy000]# cd .git/
[root@13git .git]# ls
branches config description HEAD hooks info objects refs
[root@13git .git]# cd ..
3.写入Java文件,提交文件
[root@13git yy000]# vim test.java
public class Test{public static void main(String [] args){
System.out.println("hello world");
}
}
4.文件放入仓库
[root@13git yy000]# git log
fatal: bad default revision 'HEAD'
[root@13git yy000]# git add test.java
[root@13git yy000]# git commit -m "新增了一个test.Java文件"
[root@13git yy000]# git config --global user.name shisi
[root@13git yy000]# git config --global user.email mm@shisi.com
[root@13git yy000]# echo "你好世界" >> test.java
[root@13git yy000]# git add .
[root@13git yy000]# git commit -m "第二次"
[master(根提交) c227bfb] 第二次
1 file changed, 6 insertions(+)
create mode 100644 test.java
[root@13git yy000]# git log
commit c227bfbaf87ad3296ca013033afa37ffd44c81ce
Author: shisi <mm@shisi.com>
Date: Thu Jul 25 10:50:13 2024 +0800
第二次
2.创建分支,跳转分支(所有的git操作都应该工作在,指定的init 目录下进行)
[root@13git yy000]# git branch abranch
[root@13git yy000]# git branch
abranch
* master
[root@13git yy000]# git checkout abranch
切换到分支 'abranch'
[root@13git yy000]# git branch
* abranch
master
[root@13git yy000]# ls
test.java
[root@13git yy000]# echo "我是a" >> test.java
[root@13git yy000]# cat test.java
public class Test{
public static void main(String [] args){
System.out.println("hello world");
}
}
你好世界
你好yulan
我是a
[root@13git yy000]# git add .
[root@13git yy000]# git commit -m "a"
[abranch f0c0fa6] a
1 file changed, 1 insertion(+)
[root@13git yy000]# git checkout master
切换到分支 'master'
[root@13git yy000]# git branch
abranch
* master
[root@13git yy000]# cat test.java
public class Test{
public static void main(String [] args){
System.out.println("hello world");
}
}
你好世界
你好yulan
[root@13git yy000]# git checkout abranch
切换到分支 'abranch'
[root@13git yy000]# cat test.java
public class Test{
public static void main(String [] args){
System.out.println("hello world");
}
}
你好世界
你好yulan
我是a
[root@13git yy000]#
1.分支共享(不提交)
[root@13git yy000]# git checkout -b bbranch
切换到一个新分支 'bbranch'
[root@13git yy000]# git branch
abranch
* bbranch
master
[root@13git yy000]# echo "我是b" >> test.java
[root@13git yy000]# git checkout abranch
M test.java
切换到分支 'abranch'
[root@13git yy000]# cat test.java
public class Test{
public static void main(String [] args){
System.out.println("hello world");
}
}
你好世界
你好yulan
我是a
我是b
[root@13git yy000]#
2.合并,先切换到主分支
[root@13git yy000]# git checkout master
切换到分支 'master'
[root@13git yy000]# git branch
abranch
bbranch
cbranch
* master
[root@13git yy000]# git merge abranch
更新 7908685..cf43e5e
Fast-forward
test.java | 2 ++
1 file changed, 2 insertions(+)
[root@13git yy000]# git log
commit cf43e5ee9e1e32a9640689fbc1bd1762c4c60fff
Author: shisi <mm@shisi.com>
Date: Thu Jul 25 14:09:56 2024 +0800
aaa
commit f0c0fa6f64d7e7a781dadb99fc906fdb15db79fb
Author: shisi <mm@shisi.com>
Date: Thu Jul 25 11:35:41 2024 +0800
a
commit 790868543cdbe9d2e68f4da9dc40ec8983464d0c
Author: shisi <mm@shisi.com>
Date: Thu Jul 25 11:10:58 2024 +0800
第三次提交
commit c227bfbaf87ad3296ca013033afa37ffd44c81ce
Author: shisi <mm@shisi.com>
Date: Thu Jul 25 10:50:13 2024 +0800
第二次
[root@13git yy000]#
3.删除分支
[root@13git yy000]# git branch -d abranch
已删除分支 abranch(曾为 cf43e5e)。
[root@13git yy000]# git branch -d bbranch
已删除分支 bbranch(曾为 f0c0fa6)。
[root@13git yy000]# git branch -d cbranch
已删除分支 cbranch(曾为 6acdae4)。
[root@13git yy000]# git branch
* master
4.创造分支合并冲突
[root@13git yy000]# echo "我是主分支,我修改了文件" > test.java
[root@13git yy000]# git checkout -b newbtanch
M test.java
切换到一个新分支 'newbtanch'
[root@13git yy000]# git branch
master
* newbtanch
[root@13git yy000]# cat test.java
我是主分支,我修改了文件
[root@13git yy000]# echo "我是玉兰,我要吃烤鸭" >> test.java
[root@13git yy000]# cat test.java
我是主分支,我修改了文件
我是玉兰,我要吃烤鸭
[root@13git yy000]# git checkout master
M test.java
切换到分支 'master'
[root@13git yy000]# cat test.java
我是主分支,我修改了文件
我是玉兰,我要吃烤鸭
[root@13git yy000]# git checkout newbtanch
M test.java
切换到分支 'newbtanch'
[root@13git yy000]# git status
位于分支 newbtanch
尚未暂存以备提交的变更:
(使用 "git add <file>..." 更新要提交的内容)
(使用 "git checkout -- <file>..." 丢弃工作区的改动)
修改: test.java
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[root@13git yy000]# git add .
[root@13git yy000]# git commit -m "abcd"
[newbtanch db7438b] abcd
1 file changed, 2 insertions(+), 9 deletions(-)
[root@13git yy000]# git checkout master
切换到分支 'master'
[root@13git yy000]# cat test.java
public class Test{
public static void main(String [] args){
System.out.println("hello world");
}
}
你好世界
你好yulan
我是a
我是b
[root@13git yy000]# echo "efg"
efg
[root@13git yy000]# echo "efg" >> test.java
[root@13git yy000]# git add .
[root@13git yy000]# git commit -m "注释说明"
[master b004f5f] 注释说明
1 file changed, 1 insertion(+)
5.主分支和newbranch都有修改,并进行合并
[root@13git yy000]# git branch
* master
newbtanch
[root@13git yy000]# git merge newbtanch
自动合并 test.java
冲突(内容):合并冲突于 test.java
自动合并失败,修正冲突然后提交修正的结果。
[root@13git yy000]#
6.解决冲突:
[root@13git yy000]# vim test.java //进入文件后手动删除(dd)
[root@13git yy000]# git add .
[root@13git yy000]# git commit -m "合并"
[master c2b71d6] 合并
[root@13git yy000]# git log
3.git拉取
1.在客户端cli主机,安装git
[root@16cli ~]# yum -y install git
2.免密链接git主机:
[root@16cli ~]# yum -y install openssh
[root@16cli ~]# yum -y install pwgen
[root@16cli ~]# ssh-keygen
[root@16cli ~]# ssh-copy-id root@192.168.2.13
[root@16cli ~]# ssh 192.168.2.13
Last login: Thu Jul 25 13:20:24 2024 from 192.168.2.2
[root@13git ~]# exit
登出
Connection to 192.168.2.13 closed.
[root@16cli ~]#
3.克隆git主机中的yy000目录
[root@16cli ~]# git clone 192.168.2.13:/yy000/.git/
正克隆到 'yy000'...
remote: Counting objects: 22, done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 22 (delta 4), reused 0 (delta 0)
接收对象中: 100% (22/22), done.
处理 delta 中: 100% (4/4), done.
[root@16cli ~]# ls
4.检查:
[root@16cli ~]# cd yy000/
[root@16cli yy000]# ls
efg test.java
[root@16cli yy000]# ls -a
. .. efg .git test.java
[root@16cli yy000]#
5.修改内容,设置自己的账号和邮箱
[root@16cli yy000]# git config --global user.name aaa
[root@16cli yy000]# git config --global user.email aaa@163.com
[root@16cli yy000]# touch A.class
[root@16cli yy000]# git config --global push.default matching
[root@16cli yy000]# git push
Everything up-to-date
[root@16cli yy000]# git pull
来自 192.168.2.13:/yy000/
* [新分支] zzz -> origin/zzz
Already up-to-date.
4.在码云上创建项目,进行pull 和 push:
1.初始化目录:
2.回到cli客户端,克隆项目中内容
[root@16cli yy000]# git clone https://gitee.com/shisim/yulan.git
正克隆到 'yulan'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.
[root@16cli yy000]#
3.创建文件:
[root@16cli yy000]# cd yulan/
[root@16cli yulan]# ls
[root@16cli yulan]# mkdir -p src/main/java/
[root@16cli yulan]# ls
[root@16cli yulan]# touch src/main/java/test.java
[root@16cli yulan]# tree src/
src/
└── main
└── java
└── test.java
2 directories, 1 file
[root@16cli yulan]#
4.提交:
[root@16cli yulan]# git add .
[root@16cli yulan]# git commit -m "这个是文件提交"
5.在码云上实现:
6.编辑文件内容:
[root@16cli yulan]# vim src/main/java/test.java
[root@16cli yulan]# git add .
[root@16cli yulan]# git commit -m "修改Java文件"
7.在码云页面查看:
5.克隆码云上任意项目:
[root@16cli yulan]# cd ..
[root@16cli yy000]# git clone https://gitee.com/nsdvn/nsdvn2302
正克隆到 'nsdvn2302'...
remote: Enumerating objects: 1976, done.
remote: Total 1976 (delta 0), reused 0 (delta 0), pack-reused 1976
接收对象中: 100% (1976/1976), 177.38 MiB | 2.15 MiB/s, done.
处理 delta 中: 100% (1038/1038), done.
[root@16cli yy000]#