Git的使用

Git软件为了更方便地对文件进行版本控制,根据功能得不同划分了三个区域
image.png
存储区域:Git软件用于存储资源得区域。一般指得就是.git文件夹
工作区域:Git软件对外提供资源得区域,此区域可人工对资源进行处理。
暂存区:Git用于比对存储区域和工作区域得区域。Git根据对比得结果,可以对不同状态得文件执行操作。

Git中常用的Linux的指令
image.png
如果你是第一回使用Git软件,需要告诉Git软件你的名称和邮箱,否则是无法将文件纳入到版本库中进行版本管理的。这是因为在多人协作时,不同的用户可能对同一个文件进行操作,所以Git软件必须区分不同用户的操作,区分的方式就是名称和邮箱。

git config --global user.name test
git config --global user.email test@atguigu.com

这里的–global表示全局配置,后续的所有文件操作都会使用该用户名称及邮箱。此时在操作系统的用户目录,会产生新的配置文件
image.png
文件中就包含了刚刚增加的配置信息
image.png

Git常用的指令

git init //执行指定的指令,创建文件版本库,版本库创建成功后,会在目录中创建.git目录,用于管理当前版本库。

git status//通过软件的指令查看版本库状态

git add test.txt//将文件纳入到版本库的管理(暂存区)

# commit表示真正地纳入到版本库中
# -m 表示提交时的信息(message),是必须输入的。用于描述不同版本之间的差别信息
git commit -m "my first git file"

git show//查看当前提交

git log//提交后文件的版本信息就会发生变化,查看该变化
git log --pretty=oneline
git log --oneline


//删除文件
将本地文件从目录中删除后
此时Git软件会识别出来,版本库中有一份文件和当前用于临时操作文件的暂存区内的文件状态不一致:
版本库中文件还在,但是操作区内的文件已经没有了。所以软件提供了两个选择:
一个是将版本库中的文件也进行(提交)删除操作。另外一个就是从版本库中恢复文件。
//使用指令从版本库中恢复文件
git restore test.txt
//如果想要真正删除文件,那么也要将版本库中同时删除

# 这里的f2f113f就是版本Hash值,用于唯一确定版本库中此版本的标记
# 当然了这是一个简短版,完整的比较长
# 如果不记得具体的版本值,版本值也可以使用HEAD值,比如最新的上一个版本:HEAD^
# 如果后退更多的版本,可以使用 HEAD~N
git reset --hard f2f113f//返回其他版本的内容

** **恢复历史文件
如果版本库中一份文件中已经被删除了,那么此时这份文件还能找回来吗?其实原则上来讲,已经不行了,因为文件删除本身也是一种变更操作,也算是版本库管理的一部分。所以想要将已经删除的那份文件从版本库中取出来,已经是不可能了。但是,要注意的是,版本库管理的是文件不同版本的变更操作,这个不同版本的概念还是非常重要的。也就是说,最后的那个删除的文件版本已经没有了,但是之前版本的文件其实还是存在的。所以如果我们能将文件恢复到某一个版本,那么那个版本的文件就依然存在。

git的分支

1.创建分支
# git branch 分支名称
git branch b1
git branch b2

2.查看分支
git branch -v

3.切换分支
# git checkout 分支名称
git checkout b1

4.删除分支
# git branch -d 分支名称
Git branch -d b2

5.合并分支
# git merge 分支名称
git merge new_branch


Git冲突
在多分支并行处理时,每一个分支可能是基于不同版本的主干分支创建的。如果每隔分支都独立运行而不进行合并,就没有问题,但是如果在后续操作过程中进行合并的话,就有可能产生冲突。比如B1, B2的两个分支都是基于master分支创建出来的。B1分支如果和B2分支修改了同一份文件的话,那么在合并时,以哪一个文件为准呢,这就是所谓的冲突。
image.png
这里的冲突,软件是无法判断该如何出来处理的,所以需要人工进行判断,将冲突的文件内容进行修正。

Git服务器集成

//添加远程仓库
git remote add <远端名称> <仓库路径>
git remote add origin git@gitee.com:czbk_zhang_meng/git_test.git

//查看远程仓库
git remote

//推送到远程仓库
git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]
git push origin master
-f 表示强制覆盖
--set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。
git push --set-upstream origin master
如果当前分支已经和远端分支关联,则可以省略分支名和远端名。
git push 将master分支推送到已关联的远端分支。

//本地分支与远程分支的关联关系
git branch -vv

//从远程仓库克隆
 git clone <仓库路径> [本地目录]
本地目录可以省略,会自动生成一个目录

//从远程仓库中抓取和拉取
git fetch [remote name] [branch name]
/*抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
如果不指定远端名称和分支名,则抓取所有分支。*/
git pull [remote name] [branch name]
/*拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
如果不指定远端名称和分支名,则抓取所有并更新当前分支。*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值