Git的应用及码云的应用

Git

准备一台主机,安装应用git

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

[root@git ~]# rpm -ql git 查看版本信息

[root@git ~]# git

[root@git ~]# mkdir /yy000 创建目录

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

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

[root@git ~]# cd /yy000/

[root@git yy000]# ls

[root@git yy000]# git init

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

[root@git yy000]# ls -a

. .. .git

[root@git yy000]# cd ./git

-bash: cd: ./git: 没有那个文件或目录

[root@git yy000]# cd .git/

[root@git .git]# ls

branches config description HEAD hooks info objects refs

[root@git .git]# cd ..

[root@git yy000]# vim Test.java 写一个java文件

public class Test{

public static void main(String [] args){

System.out.println("hello world");

}

}

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

fatal: bad default revision 'HEAD'

[root@git yy000]# git add Test.java 添加到缓存

[root@git yy000]# git commit -m "新建了一个Test.java文件,这是新建的" 放到仓库,后面进行说明

需要自己创建账户邮箱...

[root@git yy000]# git config --global user.name chz 创建账户

[root@git yy000]# git config --global user.email 18009413571@163.com 创建邮箱

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

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

[root@git yy000]# git add .

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

[master(根提交) af919f2] 这是第二次提交项目

1 file changed, 1 insertion(+)

create mode 100644 Test.java

[root@git yy000]# git log

commit af919f2cc55c8500502b205e3199c0d1830b7fdf

Author: chz <18009413571@163.com>

Date: Thu Jul 25 10:51:51 2024 +0800

这是第二次提交项目

安装git

创建了git仓库

创建文件并且提交文件

git init ,git add . (将文件提交到缓存)git commit -m 说明, git log(查看历史)
[root@git yy000]# echo "//我又加了一个注释" >> Test.java

[root@git yy000]# cat Test.java

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

//我又加了一个注释

[root@git yy000]# git add

没有指定文件,也没有文件被添加。

也许您想要执行 'git add .'?

[root@git yy000]# git add .

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

[master a978a8d] 将缓存中的内容交到仓库

1 file changed, 1 insertion(+)

[root@git yy000]# git log

commit a978a8d3e20c8403a1c27fa15ce8a3b7437448f0

Author: chz <18009413571@163.com>

Date: Thu Jul 25 11:11:17 2024 +0800

将缓存中的内容交到仓库

commit af919f2cc55c8500502b205e3199c0d1830b7fdf

Author: chz <18009413571@163.com>

Date: Thu Jul 25 10:51:51 2024 +0800

这是第二次提交项目

[root@git yy000]#
查看当前仓库的分支

[root@git yy000]# git branch

* master

当前只有一个master分支,这个分支又叫主分支,当工作完成后,所有的分支都会合并到主分支

要求abc三个人实现一个接口,一个文件在同一时间只能被一个用户编辑

[root@git yy000]# git branch abranch

[root@git yy000]# git branch

abranch

* master

[root@git yy000]# git checkout abranch [root@git yy000]# ls

Test.java

[root@git yy000]# cat Test.java

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

//我又加了一个注释

//wozaitiajia
切换到分支,修改内容。

[root@git yy000]# echo "//我是a员工,我不骄傲" >> Test.java

[root@git yy000]# cat Test.java

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

//我又加了一个注释

//wozaitiajia

//我是a员工,我不骄傲

[root@git yy000]# git add .

[root@git yy000]# git commit -m "a员工提交的内容"

[abranch 9288330] a员工提交的内容

1 file changed, 1 insertion(+)

切换到abranh分支上

切换到分支 'abranch'

[root@git yy000]# git branch 查看

* abranch

master
切换到master上,没有看到改动

[root@git yy000]# git checkout master

切换到分支 'master'

[root@git yy000]# git branch

abranch

* master

[root@git yy000]# cat Test.java

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

//我又加了一个注释

//wozaitiajia
切换回到abranch,可以看到修改


创建b分支,修改内容后切换到a分支可以看到修改

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

切换到一个新分支 'bbranch'

[root@git yy000]# git branch

abranch

* bbranch

master

[root@git yy000]# cat Test.java

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

//我又加了一个注释

//wozaitiajia

//我是a员工,我不骄傲

[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

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

//我又加了一个注释

//wozaitiajia

//我是a员工,我不骄傲

//我是b员工

[root@git yy000]#

[root@git yy000]# git merge abranch 内容合并到master
删除abc三条分支

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

已删除分支 abranch(曾为 a399028)。

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

已删除分支 bbranch(曾为 9288330)。

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

已删除分支 cbranch(曾为 a399028)。

[root@git yy000]# git branch

* master
在合并的时候,有可能产生文件冲突

在合并的时候,两分支也修改了文件,zhangsan分支这个文件,两个分支都发生修改,合并的时候就不清楚哪个分支为主,产生冲突,手动解决

[root@git yy000]# git branch

* master

[root@git yy000]# echo "//我是主分支,我修改了文件0" > Test.java

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

M Test.java

切换到一个新分支 'newbranch'

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

[root@git yy000]# cat Test.java

//我是newbranch分支

[root@git yy000]# git checkout newbranch

M Test.java

已经位于 'newbranch'

[root@git yy000]# git status

位于分支 newbranch

尚未暂存以备提交的变更:

(使用 "git add <file>..." 更新要提交的内容)

(使用 "git checkout -- <file>..." 丢弃工作区的改动)

修改: Test.java

未跟踪的文件:

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

efg

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

[root@git yy000]# git add .

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

[newbranch e68e0a3] abcd

2 files changed, 1 insertion(+), 5 deletions(-)

create mode 100644 efg

[root@git yy000]# git checkout master

切换到分支 'master'

[root@git yy000]# cat Test.java

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

//我又加了一个注释

//wozaitiajia

//我是a员工,我不骄傲

//我是b员工

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

[root@git yy000]# git add .

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

[master 7d86339] ccc

1 file changed, 1 insertion(+), 5 deletions(-)

[root@git yy000]# cat Test.java

jffbjcdsm

主分支有修改,newbranch也有修改

现在要将newbranch合并到主分支

[root@git yy000]# git branch

* master

newbranch

[root@git yy000]# git merge newbranch

自动合并 Test.java

冲突(内容):合并冲突于 Test.java

自动合并失败,修正冲突然后提交修正的结果。

[root@git yy000]#

[root@git yy000]# cat Test.java

<<<<<<< HEAD

jffbjcdsm

=======

//我是newbranch分支

>>>>>>> newbranch

解决冲突

[root@git yy000]# vim Test.java

[root@git yy000]# cat Test.java

jffbjcdsm

//我是newbranch分支

[root@git yy000]# git add .

[root@git yy000]# git commit -m "111" 合并修正

[master d1ffbbe] 111

[root@git yy000]# git log

小结:

git仓库的建立

1.创建目录

2.进入到这个目录 cd /test

3.执行git指令 git init

4.发行一个影藏目录 .git

5.test目录就是工作区域 ,git就是仓库

2.常用的指令

1.在test目录中修改文件

2.git add . 文件名 将修改的文件提交到暂存区域

3.git commit -m """说明" 将暂存的数据保存到仓库

4.git log 查看提交日志

3.分支

1.让项目有多种可能性

2.分支创建,删除合并

1.查看分支 git branch 有几行,就有几个分支,*标注当前所在的分支

2.切换分支的指令,git checkout 分支名

3.新增分支

git branch 新分支名

在跳转分支的时候创建,git checkout -b 新分支名

4.删除分支,要求是分支已经合并

git branch -d abranch

4.分支冲突

将两个分支合并

git checkout abranch

git merge bbranch 在a分支合并b分支

a分支和b分支都对同一个文件进行了修改,并且commit

合并的时候,就是报分支冲突,需要手动选择,再提交就可以了

git拉取

新建一台机器做免密

[root@localhost ~]# ssh-keygen

[root@localhost ~]# ssh-copy-id root@192.168.2.31

克隆192.168.2.31上的资料

[root@localhost ~]# git clone 192.168.2.31:/yy000/.git/

正克隆到 'yy000'...

remote: Counting objects: 25, done.

remote: Compressing objects: 100% (15/15), done.

remote: Total 25 (delta 5), reused 0 (delta 0)

接收对象中: 100% (25/25), done.

处理 delta 中: 100% (5/5), done.

[root@localhost ~]# cd yy000/

[root@localhost yy000]# ls

efg Test.java

[root@localhost yy000]# ls -a

. .. efg .git Test.java

[root@localhost yy000]#

修改内容

设置自己的姓名和邮箱

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

[root@localhost yy000]# git config --global user.emal chz@163.com

[root@localhost yy000]# touch A.class

[root@localhost yy000]# git add .

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

[master 9d9b959] aaa

Committer: chz <root@localhost.localdomain>

您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确

与否。您可以通过下面的命令对其进行明确地设置以免再出现本提示信息:

git config --global user.name "Your Name"

git config --global user.email you@example.com

设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:

git commit --amend --reset-author

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

create mode 100644 A.class

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

获取更新,就用git pull

git clone 会在当前目录下创建新的仓库

在码云上创建项目

[root@localhost yy000]# cd ..

[root@localhost ~]# git pull

fatal: Not a git repository (or any of the parent directories): .git

[root@localhost ~]# git clone https://gitee.com/chen-xiyu-chz/laochen.git

正克隆到 'laochen'...

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@localhost ~]# cd laochen

[root@localhost laochen]# ls

README.en.md README.md

[root@localhost laochen]# mkdir -p src/main/java

[root@localhost laochen]# touch src/main/java/Test.java

[root@localhost laochen]# tree src/

src/

└── main

└── java

└── Test.java

2 directories, 1 file

[root@localhost laochen]# git push

warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'

修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,

进行如下设置:

git config --global push.default matching

若要不再显示本信息并从现在开始采用新的使用习惯,设置:

git config --global push.default simple

参见 'git help config' 并查找 'push.default' 以获取更多信息。

('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,

为保持兼容,请用 'current' 代替 'simple' 模式)

Username for 'https://gitee.com': 账号

Password for 'https://18009413571@gitee.com':

Counting objects: 7, done.

Compressing objects: 100% (2/2), done.

Writing objects: 100% (6/6), 442 bytes | 0 bytes/s, done.

Total 6 (delta 0), reused 0 (delta 0)

remote: Powered by GITEE.COM [GNK-6.4]

To https://gitee.com/chen-xiyu-chz/laochen.git

8d2dc90..a6cd8e6 master -> master

[root@localhost laochen]# vim src/main/java/Test.java

public class Test{

public static void main(String [] args){

System.out.println("hello world");

}

}

[root@localhost laochen]# git add .

[root@localhost laochen]# git commit -m "tj"

相关推荐
晨春计1 小时前
【git】
android·linux·git
念幽1 小时前
Git常用命令
git
神技圈子2 小时前
【git系列】git中的那些迷惑的术语以及概念详解
git
benben0442 小时前
Photoshop使用方法大全
git
ou.cs3 小时前
git 删除远程分支的几种写法
git
atlanteep3 小时前
Linux·权限与工具-git与gdb
linux·git
胆小鬼~13 小时前
【DAY20240918】03教你轻松配置 Git 远程仓库并高效推送代码!
git
哆啦安全16 小时前
git常用命令(patch补丁和解决冲突)
git
△曉風殘月〆17 小时前
如何删除git提交记录
git
xianwu54318 小时前
Git常用命令与基本操作(包括搭建git环境)
git