Git快速入门(未完善)

为什么要学习

常用功能:仓库管理、文件管理、分支管理、标签管理、远程操作

进阶功能:使用开发工具来集成Git软件和访问GitHub,Gitee这样的第三方代码托管平台

软件配置管理(SCM)是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。

概念

版本控制、集中式版本控制、分布式版本控制、多人协作开发

版本:软件版本、文件版本(保存重要历史记录、恢复数据)

版本控制软件的基础功能

  1. 保存和管理文件
  2. 提供客户端工具进行访问
  3. 提供不同版本文件的比对功能

集中式、分布式版本控制软件

集中式版本控制系统:将所有资源放在一个中央服务器,每个开发人员都能对服务器进行访问和交互。

集中式版本控制:一个中央服务器(资源库)供开发人员通过客户端进行上传和下载文件。容易出问题每个人都下载文件,然后修改上传文件到中央服务器就会出现文件冲突问题,不同软件有不同的处理方式。一旦服务器发生问题,项目就会丢失和损坏。

文件冲突解决,例如:SVN将文件每行做标记,然后进行比对操作,但是要是对同一行做操作那么文件冲突问题依然存在

分布式版本控制: 一个中央服务器,在本地有一个仓库,开发人员访问本地仓库,一些操作在本地仓库进行。会造成的问题:占用本地内存、如果网速慢的话同步速度就会变慢

 

 仓库的文件操作:

        

 show in Explorer打开所在文件管理器位置

不能识别仓库外的文件操作,只能识别创建的仓库里面的文件操作,在文件夹中新创建一个文件,会在软件中显示。

本地仓库是在.git下的,无法对仓库进行操作。 .git路径和仓库路径不一样,这是两个不同的概念。为什么软件会显示修改记录,因为文件有一个比对功能。

 增加、修改或者删除都需要进行提交。

 提交之后然后就没有记录,是因为现在仓库里面也有相应的改变的文件,经过软件比对两者完全相同。

 文件操作历史

 

40个16进制的数字组成的版本号,提交码。

分支操作

张三、李四、王五分别开发不同的功能,三个人在中央服务器拷贝下相应的文件到本地仓库,在本地仓库进行操作,在本地仓库进行操作是为了减少文件冲突,而且频繁在中央服务器进行操作会产生大量的版本信息。最后合并到一个仓库。

 创建分支操作

 

 合并分支

 选择要合并的分支

冲突文件的合并 

如果在两个分支分别创建两个相同的文件,分别与主文件进行合并时会产生文件冲突。根据需要选择留下哪一个。

 如果要合并删除方框里面的内容。

 

 给文件增加标记,这个标记叫做标签

然后就会出现相应的标签 

 如果想删除

远程仓库

 

 GitHub远程仓库如何操作

创建一个仓库

创建一个新的分支

删除仓库,点击settings

 

 点击options登录github账号,操作远程仓库。克隆远程仓库到本地。

 对本地仓库进行修改之后,远程仓库没有变化。因为没有推送

 Gitee远程仓库操作

 

选择url将gitee里面的地址复制到里面 

 操作和GitHub相同

README

创建一个新的仓库建议勾选创建readme文件,readme文件的创建是为了介绍所写代码的一些详细信息,为了之后更好的维护。

 git本质上是对代码进行文件控制,无法对图片进行比对,git针对的是文本文件,因为git是代码托管平台。

文件修改添加副本a.txt.bak没必要显示出来,可以选择ignore file操作进行忽略。(忽略单个后缀为.bak的文件)

 忽略所有后缀为.bak的文件,开发中可以忽略掉一些不必要的本地开发文件

 文件图标和对比功能

软件对多个文件增删改进行操作:

@@ -0,0 +1 @@

-0表示旧文件

-0,0表示旧文件是空屋内按

+1表示增加了一条信息 

 

@@ -1 +1,2 @@

旧的文件第一行,新的文件第一二行 

IDEA集成GitHub

创建一个文件,然后添加一个a.txt文件里面填写一段文字用于测试。

 

 

将本地文件推送到本地仓库中,然后就可以通过开发工具进行修改了。

 

 Commit File将本地文件提交到仓库。

Commit将文件提交到本地仓库 ,Commit and push将文件提交到本地仓库再把文件上传到gitHub中。

 如果提交后,在远程仓库对文件进行操作,本地文件不会跟着更改。所以还需要将远程仓库同步到本地仓库。

Fetch抓取数据,Pull合并数据。所以点击Pull,然后会出现

然后点击Pull,然后将远程仓库的文件下载到本地与本地文件进行合并就可以了。(如果看到没有更新可以选择先关掉当前文件,等待一会)

clone将远程仓库进行克隆 

 IDEA集成Gitee

操作和之前一样,在vcs里面没有看到gitee是因为没有安装特定的插件。

选择settings 

 

然后点击Plugins ,在里面搜索Gitee

 

 Git版本号

Git版本号—介绍

af6a988是版本号,Git中的版本号是根据SHA-1加密算法算出来的。而且长度为40位所以重复的可能性很小

 Git可以对多个相同的库进行合并

但是合并时会出现问题:合并后的文件版本号是什么?

Git中的版本号是用来定位用的:2+38前两位为文件夹,后面38位是文件名。

综上所述文件的版本号有两个作用:

  1. 定位文件的位置
  2. 避免文件冲突

 Git版本号—文件操作

查看文件内容,在软件中无法看到想要的内容需要通过git去查看。

        查看文件,-p的意思是友好的查看,版本号要到文件中去复制

$git cat-file -p 版本号

tree后面也是一个版本号,然后查看该版本号 

 

 100表示普通文件,644表示文件的权限,blob表示当前表示的是一个普通的文件块对象,dee0开头的一串字符也是版本号,然后查看改版本号然后就出现了文件的内容。所以说文件在一次提交会创建多个版本号。

 文件查看的顺序依次是:

  1. 查看提交信息
  2. 查看文件状态(tree)
  3. 查看文件内容

 parent 版本号,的意思是上一次提交的版本号,说明这两次提交之间是有关系的。

增加文件,红色文件是新增加的文件,白色是旧文件。

 文件删除

所谓的删除就是文件状态不指向所存储的文件了。

Git版本号—分支操作

.git 文件里面有一个HEAD 文件,指向一个路径。这里的分支指向的就是用户创建的分支,每个分支实际上指向的是不同版本的提交信息。

文件存在工作目录、比对区域和存储区域。在工作区域内进行一些操作。然后在比对区域对工作区域和存储区域进行一些对比。

 

Git命令

Git 基本操作 | 菜鸟教程 (runoob.com)

介绍

远程仓库 =》 clone克隆 =》 存储区域(存储)、暂存区域(比对)、工作区域(操作)

存储区域(存储)、暂存区域(比对)、工作区域(操作)=》 publish =》 远程仓库

工作区通过 git add 添加到暂存区然后通过 git commit 提交到存储区域。

Git命令-仓库操作

使用当前目录作为 Git 仓库,我们只需使它初始化。

git init

克隆仓库的命令格式为:

git clone <repo>

如果我们需要克隆到指定的目录,可以使用以下命令格式:

git clone <repo> <directory>

参数说明:

  • repo:Git仓库
  • directory:本地目录

比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令:

$ git clone git://github.com/schacon/grit.git
配置:

显示当前的 git 配置信息:

$ git config --list
credential.helper=osxkeychain
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true

编辑 git 配置文件:

$ git config -e    # 针对当前仓库 

或者:

$ git config -e --global   # 针对系统上所有仓库

设置提交代码时的用户信息:

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

去掉 --global 参数只对当前仓库有效。user.name、user.email 是固定格式。

文件操作

查看仓库当前的状态,显示有变更的文件。

$ git status

git add 命令可将该文件的修改添加到暂存区。

添加一个或多个文件到暂存区:

git add [file1] [file2] ...

添加指定目录到暂存区,包括子目录:

git add [dir]

添加当前目录下的所有文件到暂存区:

git add .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值