Git安装与基础使用

1.什么是版本控制:

版本控制是指软件开发过程中各种程序代码,说明文档等文件的变更进行管理,它将追踪文件变化,记录文件的变更时间,变更内容,甚至变更执行人进行记录,同时对每一个阶段性变更(不仅仅只是一个文件的变化)添加版本编号,方便将来进行查阅特定阶段的变更信息,甚至是回滚。

2.什么是git

(1)人工版本控制器

通过人工的复制行为来保存项目的不同阶段的内容,添加适当的一些描述文字加以区分:①繁琐,容易出错②产生大量重复数据。

(2)版本控制工具

通过程序完成上述人工版本控制行为:方便且功能强大,只记录不同版本之间变化 的部分。

(3)常见版本控制工具

CVS SVM Git

3.怎么工作的?

先了解两个重要概念:状态 区域

(1)状态

Git又提供了三种(也可以说是四种)不同的记录状态
已修改(modified)
已暂存(staged)
已提交(committed)
有一个特殊的状态:未追踪(Untracked)

(2)区域

提供了三个不同的工作区,用来存放不同的内容
工作目录:工作区:就是你在电脑里能看到的目录
暂存区域:一般存放在.git目录下的index文件(.git/index)中,所以我们把暂存区有 时也叫作索引(index).
git仓库:版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

4.配置

当安装完git应该做的第一件事就是设置你的用户名与邮件地址。因为每一个git的提交都会使用这些信息,并且它会写入到每次提交中,并且不可更改

在这里插入图片描述

(1)–global

通过‘–global’选项可以设置全局配置信息
在这里插入图片描述

如果去掉–global参数只对当前仓库有效。

(2)检查配置

在这里插入图片描述

编辑git配置文件
在这里插入图片描述

或者:
在这里插入图片描述

5.创建仓库 - repository

进入git版本控制的项目目录,使用‘git init’初始化
在执行完成git init 命令后,Git仓库会生成一个.git目录,该目录包含了资源的所有元 数据,其他的项目目录保持不变。
git init
需要先用git add命令告诉Git开始对这些文件进行跟踪,然后提交;

6.查看工作区的文件状态:

git status

7.添加工作区文件到暂存区

git add
在这里插入图片描述

当对工作区修改(或新增)的文件执行git add 命令时,暂存区的目录树被更新,同时工 作区修改(或新增)的文件内容被写入到对象库中的一个新对象中,而该对象的ID被记录 在暂存区的文件索引中。
8.创建版本‘git commit
将暂存区里的改动给提交到本地git仓库,也就是为这次工作,每次提交同时会生成一 个49位的哈希值,作为该次提交版本的唯一id

(1)提交备注:

每次提交都需要填写备注信息
在这里插入图片描述

(2)单行备注

在这里插入图片描述
在这里插入图片描述

当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master分支会 做相应的更新。即master指向的目录树就是提交时暂存区的目录树。

9.查看提交日志‘git log’

在这里插入图片描述

git blame 文件:以列表形式查看指定文件的历史修改记录

10.修复提交‘git commit --amend’

修复(替换上一次)提交,在不增加一个新的提交版本的情况下将新修改的代码追加到前 一次的提交中
在这里插入图片描述

11.删除 ‘git rm’

当执行git rm --cached 文件命令时,会直接从暂存区删除文件,工作区则不做出改变
在这里插入图片描述

12.撤销重置 ‘git reset’

当执行git reset HEAD命令时,暂存区的目录树会被重写,被master分支指向的目录树所替换,但是工作区不受影响。
改命令既可以用于回退版本
在这里插入图片描述

取消当前删除:
在这里插入图片描述

从暂存区中撤销一个指定文件
git reset HEAD 文件名称
从暂存区中国年撤销所有文件
git reset HEAD

13.比较

比较工作区和暂存区
git diff 文件
比较暂存区和仓库
git diff --cached [commitId]文件
比较工作区和仓库
git diff commitId filename
比较仓库不同版本
git diff commitId1 commitId2

14.分支

当执行git checkout,或者git checkout – 文件命令时,会用暂存区全部指定的文件替换工作区的文件,但会清除工作区中未添加到暂存区的改动。
当执行git checkout HEAD . 或者git checkout HEAD 命令时,会用HEAD指向的master分支中的全部或者部分文件替换缓存区和以及工作区中的文件。具有危险性的,不但会清除工作区中未提交的改动,也会清除暂存区中为提交的改动。

(1)查看分支

git branch

(2)创建分支

git branch 分支名称

(3)切换分支

git checkout 分支名称
也可以使用checkout -b来新建分支
git checkout -b 分支名称

(4)B合并到A,需要切换到A分支

git merge 被合并分支
查看已经合并的分支
git branch --merged
查看未合并的分支
git branch --no-merged

(5)删除分支

如果分支未合并状态,则不允许删除
git branch -d 分支名称
强制删除
git branch -D 分支名称

15.合并记录’rebase’

合并HEAD前两个祖先记录
git rebase -i HEAD~2

(1)~与^

~:纵向
^:横向
在这里插入图片描述

(2)rebase操作

在这里插入图片描述

git rebase -i HEAD~3:
弹出编译器,根据需要的进行修改,然后保存。
如果为r,s则会再次弹出编译器,修改新的commit message,修改之后保存

16.合并冲突

有时候,不同的分支可能对同一个文件内容和位置上进行操作,这样在合并的过程中就 会产生冲突需要去
查看冲突文件,修复冲突内容,最后去提交

17,标签 git-tag创建,列出,删除或验证使用GPG签名的标签对象

有时候,我们希望给某一个特定的历史提交打上一些标签

(1)新建tag

git tag -a v1.0.0 HEAD/commitId

(2)查看tag

git tag

18.git clone

使用git clone从现有Git仓库中拷贝项目(类似SVN checkout)
克隆仓库的命令格式为:
在这里插入图片描述

如果我们需要克隆到指定的目录,可以使用以下命令格式:
在这里插入图片描述

repo:Git仓库
directory:本地目录

要克隆Ruby语言的Git代码仓库Grit,可以用下面的命令:
在这里插入图片描述

执行该命令后,会在当前目录下创建一个名为girl的目录(目录名自定义),用于保存下载下来的所有版本记录。
如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
在这里插入图片描述

19.远程操作:

git remote:远程仓库操作
git fetch:从远程获取代码库
git pull:下载远程代码并合并
git push:上传远程代码并合并

20.Git远程仓库(GitHub)

(1)添加远程库:

要添加一个新的远程仓库,可以指定一个简单的名字可以将来引用,命令格式如下:
git remote add [shortname] [url]
[简称][网址]

(2)先去GitHub官网上注册一个账号,之后登录点击“New repository”

在这里插入图片描述

之后在repository name填入runoob-git-test(远程仓库名)其他保持默认设置,点击 “create repository”按钮,就成功创建一个新的Git仓库。
在这里插入图片描述

创建成功后,会显示如下信息:
在这里插入图片描述

一般会用第二段,上面信息告诉我们可以从这个仓库中克隆出新的仓库,也可以把本地仓库的内容推送到GitHub仓库,根据GitHub的提示在本地的仓库下运行命令:
在这里插入图片描述

返回GitHub创建的仓库,就可以看到文件已上传到GitHub上:
在这里插入图片描述

(3)查看当前的远程库

可以用命令:git remote

(4)提取远程仓库

有两个命令用来提取远程仓库的更新
①从远程仓库下载到分支数据:
git retch
②从远程仓库提取数据并尝试合并到当前分支:
git merge

(5)推送到远程仓库

推送你的新分支与数据到某个远程仓库命令:
git push [alias] [branch]

(6)删除远程仓库

git remote rm[别名][别名]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值