1-git

git

git 1

1. 如何获取内核版本 2

2. 查看是否安装git 3

3. git安装部署 3

4. git工作目录 5

5. git基础命令 7

6. git分支及代码合并 19

7. git标签 29

如何获取内核版本

cat /etc/redhat-release

1-git

hostnamectl

1-git

uname -r

1-git

uname -a

1-git

查看是否安装git

1-git

源码包安装:

tar -zvxf git-2.5.0.tar.gz

cd git-git-2.5.0

make prefix=/usr/local/git all

make prefix=/usr/local/git install

git安装部署

git config配置用户

1-git

配置git使用用户

git config --global user.name 'ljh'

配置git使用邮箱

git config --global user.email 'ljh19960302@163.com'

语法高亮

git config --global color.ui true

查看信息

git config --list

1-git

cat .gitconfig

1-git

git初始化

初始化工作目录

mkdir git_data

cd git_data

初始化仓库,把一个目录初始化为版本仓库(可以是空目录,也可以是自带内容的目录)

git init

1-git

查看当前仓库状态

git status

1-git

git工作目录

隐藏文件介绍

1-git

git_data为git的工作目录

1-git

branches:分支目录

config:定义项目特有的配置选项

description 仅供git web使用

HEAD:知识当前的分支

hooks:包含git钩子文件

info:包含一个全局排除文件(exculude文件)

objects 存放所有数据内容,有info和pack两个子文件

refs:存放指向数据(分支)的提交对象指针

index:保存暂存区信息,在执行git init的时候,这个文件还没有

工作架构

1-git

如果想要把代码存到本地仓库,就需要先添加到暂存区域,才能添加到本地仓库,才能被版本控制系统管理起来

git基础命令

git status:查看仓库状态

touch a b c

1-git

未被跟踪的文件a b c:因为尚未提交,使用git add让其提交

git add 文件名:将文件添加到暂存区

git add a:添加a到在暂存区

1-git

1-git

可以使用git rm --cached 文件名进行撤回

git add *(.):添加当前所有文件到暂存区

1-git

git rm --cached 文件名:将文件从暂存区撤回到工作区

git rm --cached c

1-git

撤回后可以使用rm -f 直接删除,如果直接从暂存区和工作区一同删除,可以使用git rm -f b

1-git

git commit -m "add newfile a" 提交到本地仓库

1-git

将暂存区的代码提交到本地仓库进行管理,并使用-m赋予提示,生成一个hash值

1-git

自适暂存区的内容已经提交到本地仓库,所以没有了

git mv:修改已经提交到暂存区的文件名

默认git直接使用mv需要进行撤出缓存区

mv a a.txt
git status
git rm --cached a
git status
git add a.txt
git status
git commit -m "modified a a.txt"
git status

直接使用mv默认是将a从本地仓库的源文件删除,然后需要先将修改后的文件再次提交到缓存区,然后提交到本地仓库

使用git mv命令修改

git mv a a.txt

1-git

直接修改本地仓库中的内容并拉回缓存区,需要再次提交

提交

git commit -m "mv a a.txt"

git diff 文件比对

默认比对工作目录和暂存区有什么不同

1-git

因为本地工作目录中的a.txt和暂存区中的a.txt不一样,所以会显示出区别

1-git

提交:git add a.txt之后,此时工作区和暂存区内容一样,git diff则不会显示有区别

git diff --cached 比对暂存区域和本地仓库

工作目录提交到缓存区之后,缓存区会与本地仓库内容不一致

1-git

将暂存区的内容添加到本地仓库,这时所有区域都统一了

1-git

git commit -am:如果某个文件已经被仓库管理,如果在更改此文件,直接需要一条命令提交即可

此时a.txt已经被仓库管理起来了

git commit -am "说明"

1-git

git log:git commit相当于虚拟机的镜像,任何操作被做了一次快照,可恢复到任意一个位置,如果想要查看历史的git commit快照操作,使用git log

1-git

git log --oneline

1-git

一行显示详细信息

git log --oneline --decorate

使用HEAD指针显示当前的位置

1-git

git log -p

每一次commit修改的内容变化

1-git

git log -n

只显示最近n条内容

1-git

历史数据的恢复:git reset --hard 前七位hash字母

回滚数据到某一个提交位置

1-git

此时使用git log回到现在已经无法找到最后的状态值,如果需要找到所有的操作hash值,需要使用git reflog全部显示

回到未来的方式

git reflog

1-git

git分支及代码合并

1-git

一般实际项目开发中,我们要尽量保证分支是非常稳定的,仅用于发布新版本,平时不要随便直接修改里面的数据文件,而工作的时候可以创建不同的工作分支,等到工作完成后再合并到master分支上面,所以团队分支看起来会如图

常见命令

git branch:查看分支

1-git

git branch testing 创建一个测试分支

1-git

git checkout -b testing 创建并切换到testing分支

1-git

git checkout testing 切换到测试分支

1-git

git branch -d testing 删除testing分支(如果此时处于testing分支需要先切换到master分支)

1-git

实验:代码合并

流程图

1-git

初始化

mkdir data
cd data/
git init

模拟三次修改加入

touch aaa bbb ccc
git add aaa
git commit -m "add aaa"
git add bbb
git commit -m "add bbb"
git add ccc
git commit -m "add ccc"
查看指针位置
git log --oneline --decorate

1-git

此时加入testing分支进行操作

git branch testing
git checkout testing

1-git

git branch

1-git

查看现在所在的位置

1-git

指针指向了master最后一次提交

预先创建好一个testing分支

git checkout -b testing

再test中继续创建文件(模拟分支中的修改代码),并提交到仓库

touch test.ddd
git commit -m "add newfile test.ddd to testing"
git log --oneline --decorate

1-git

此时HEAD指针指向testing库中的添加test.ddd到testing本地仓库中

此时返回到主干查看本地仓库中的内容

git checkout master
ll

1-git

并没有新建的test.ddd,说明分支创建的文件不会影响到主干
git log --oneline --decorate

1-git

此时分支在master上面,记录的最后一次指针位置是master最后的一次提交位置

在master分支中创建master.eee

touch master.eee
git add master.eee
git commit -m "add newfile master.eee to master"
git log --oneline --decorate

1-git

如果testing分支功能研发完毕,需要与master分支进行合并:git merge testing

git merge testing

1-git

合并时可以选择填写信息
ls一下,发现此时成功将test.ddd合并到master分支

1-git

测试testing分支已经没有用了,需要删除这个分支重新创建

git branch -d testing
此时查看指针,显示合并时的位置

1-git

实验:冲突合并

创建testing分支
git branch testing
修改文件内容
echo "master" >aaa
因为aaa已经被仓库管理,使用-am直接提交
git commit -am "modify aaa add master"
现在进入testing分支,修改aaa文件,并提交到本地仓库
git checkout testing
echo "testing" > aaa
git commit -am "modified testing add aaa"
进入mster进行合并
git checkout master
git merge testing

1-git

cat aaa

1-git

此文件出现冲突只能手动修改

删除想要留下的内容后重新提交

vim aaa

1-git

git commit -am "after merge testing"

git标签

命令:

git tag:查看有哪些标签

git tag -a 标签版本 -m "备注信息":打标签

git show:查看标签信息

git tag -d 版本号:删除标签

1-git

实验:

在不同的节点位置打上v1.0和v2.0标签

1-git

git tag -a v1.0 -m "after merge testing to v2.0"

git show 标签名称

1-git

回到老版本打标签

git reset --hard f457de4

git tag -a v2.0 -m "after add ccc to v1.0"

git tag

1-git

发布者:LJH,转发请注明出处:https://www.ljh.cool/35822.html

(0)
上一篇 2023年4月20日 上午1:48
下一篇 2023年4月20日 上午2:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注