Git的学习(一),看的时候边看边做!不动手敲就别看!

Git

GIT(分布式版本控制系统)
Git(读音为gɪt)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git和svn对比

Svn

  • svn是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器那里得到最新的版本,然后干活,干完后,需要把自己做玩的活推送到中央服务器,集中式版本控制系统是必须联网才能工作,如果在局域网还可以,宽带勾搭,速度够快,如果在互联网下,如果网速慢的话,就比较恶心了。
  • 每一个开发机器上必须要装svn客户端,如果想提交代码直接把代码提交到svn服务器上,每个客户机是直接和svn服务器交互的。
    在这里插入图片描述
  • svn的弊端:(其实在鸡蛋里挑骨头哦,svn也挺好的)
  1. 服务器单点故障:如果中间那个服务器挂了怎么办?重启一下的了
  2. 容错性差

Git

  • Git是分布版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完成的版本库,这样,工作的时候就不需要联网了,因为版本都在自己的电脑上,既然每个人的电脑都有一个完整的版本库,那多个人如何协作?比如自己在电脑上改了A文件,其他人也在电脑上改了A文件,这时,你们两个之间只需要把各自的修改推送给对方,就可以互相考到对方的修改了。
    在这里插入图片描述

Git和托管中心

  1. 代码托管中心的任务:维护远程库
  2. 局域网环境下:GitLab服务器(我们可以自己搭建,在同一个局域网下公司开发人员共同使用)
  3. 外网环境下:GitHub、码云

Git的工作流程

  1. 从远程仓库中克隆Git资源作为本地仓库;
  2. 从本地仓库中checkout代码然后进行代码修改;
  3. 在提交前先将代码提交到暂存区;
  4. 提交修改,提交到本地仓库,本地仓库中保存修改的各个版本;
  5. 在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库;在这里插入图片描述

Git的安装与下载

自己安装去啊兄dei;
安装好之后:
在这里插入图片描述

  • Git GUI Here 就是一个图形界面:(就是一个可视化的管理嘛)在这里插入图片描述
  • Git Bash Here:(和cmd差不多,它是一个Linux操作系统下的“cmd”,就是一个虚拟的Linux环境)
    在这里插入图片描述

设置签名(用来区分你是谁)

为什么要设置签名呢,就是在你提交的代码的时候,需要明确这个代码是谁提交的

  • 这里设置的签名和登录远程库的账号、密码没有任何关系
  • 命令:
    ①项目级别/仓库级别:仅在当期那本地库范围内有效:
    命令一:git config user.name kunkun
    命令二:git config user.email kunkun@qq.com
    (我们的签名信息保存在:./.git/config 文件中;
    我们用 cat .git/config 来查看一下信息,内容如下图)在这里插入图片描述
    ②系统用户级别:登录当前操作系统的用户范围:
    命令一:git config --global user.name kunkun
    命令二:git config --global user.email kunkun@qq.com
    (签名信息是被保存在一个隐藏参数中.gitconfig文件辽)在这里插入图片描述在这里插入图片描述
    ③优先级:(当既有项目级别签名又有系统用户级别签名的时候以哪个为准呢?)
    a. 就近原则,项目级别优先于系统用户级别,二者都有时,采用项目级别的签名
    b. 如果只有系统该用户级别的签名,就以系统用户级别的签名为准;
    c. 二者必须要存在一个

使用Git管理文件版本

创建版本库

  • 版本库就是仓库(Repository),可以理解为一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以使任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。由于git是分布式版本管理工具,所以git在不需要联网的情况下也具有完整的版本管理功能。
  • 步骤(以命令行为准):
    1. (新建一个)准备好一个空文件夹(起名字规范点哦)例如Respository;
    2. 在Respository这个文件夹下再创建一个新的文件夹,例如repo1;
    3. 进入repo1这个文件夹,右键git bash here并输入:git init在这里插入图片描述
      文件夹里会多出来一个.git的隐藏文件,这个.git就是你新建的仓库辽。
      另:隐藏文件如何显示?(如下图)
      在这里插入图片描述
      在这里插入图片描述
      你所有想添加到本地仓库的代码文件,必须要放在工作目录下!!!!就是与.git文件同级!

工作区与暂存区

  • Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念;
  • 撒是工作区啊(Work Directory)?
    工作区就是你在电脑里能看到的目录,比如上面我们建立的Reporsitory文件夹就是一个工作区;“.git”隐藏文件才是版本库。
  • Git的版本库里存了很多东西,其中最重要的就是stage(或者叫index)暂存区,还有Git为我们自动创建的第一个默认分支master(一定会有),以及指向master的一个指针HEAD。
  • 将文件添加的过程是把文件添加到暂存区中,后续还需要commit一下才会真的加入到本地仓库中。 在这里插入图片描述

将文件提交到本地仓库的步骤:(默认已经建好了仓库哦)

1. 首先我们在工作目录下准备好一个想要提交到本地仓库的文件。在这里插入图片描述
2. 先查看一下我们工作区的状态,右键打开Git Bash Here,在命令行中输入:“git status” 在这里插入图片描述
  • 我们一条一条来看上面的提示:
    ①On branch master:现在是在master这个分支上;
    ②No commits yet:现在版本库里没有提交过任何东西;
    ③Untracked files:有未追踪的文件;
    ④ (use “git add …” to include in what will be committed):可以使用"git add <文件名称>"把文件包含到可以提交的地方,即把文件放在暂存区中;
    ⑤nothing added to commit but untracked files present (use “git add” to track):
    你没有把任何东西放在暂存区中,但是有为追踪的文件存在;
3. 将文件添加至缓存区,用"git add <文件名> "这个指令!在这里插入图片描述
  • 我们再来查看一下工作区的状态(git status)在这里插入图片描述
    ① changes to be committed:要被提交的改变
    ② (use “git rm --cached …” to unstage):你可以使用"git rm --cached <文件名>"这个命令来把这个文件从暂存区撤回
4. 将文件从暂存区提交到本地库,输入"git commit <文件名>"指令;

输入完git commit xiaowangba.txt之后,我们就进入了下面的这个界面。
在这里插入图片描述
大家一看到这个界面一定会觉得很陌生,这里简单介绍一下这是vim编辑器;
由于我们的git是由Linux的祖师爷开发的,所以git本身是Linux的环境,那么vim编辑器就是Linux很常见的编辑器咯。这里给大家附上一个链接,如果想学习这个编辑器的相关知识,戳这里:https://blog.csdn.net/xiajun07061225/article/details/7039413

5. 输入你的注释信息

提示的第一句:Please enter the commit message for your changes.
请为你这次提交写一些信息进去(比如这次提交的内容是什么,这次提交是第几次提交等等这样的内容),真实的开发项目需要你们自己按照公司规范写哦!这里我就随便写点咯。
注意!!!
这个vim编辑器不可以直接输入,需要按下i键!界面会变成下面的样子,注意看红色圈起来的地方。在这里插入图片描述
然后!我们如何结束输入呢?按一下esc键,再输入:wq就可以保存并退出辽~
提交后就会有如下的信息出现:在这里插入图片描述

  • 里面的内容是什么意思呢?
    ①[master (root-commit) cac9dac] 堃堃的测试哟:因为是第一次提交,所以是在master分支中根提交(root-commit),后面的cac9dac就可以粗略的认为这是我们这次提交的一个版本号;后面的字就是我们写的备注了呢!
    ② 1 file changed, c:
    1 file changed:表示一个文件被提交了
    1 insertion(+):表示我们提交的文件中有几行,我们可以用 cat xiaowangba.txt来看一下我们提交文件的内容。
    在这里插入图片描述
    ③ create mode 100644 xiaowangba.txt
    :创建的模式,新建了一个文件;

再来看一下我们的状态:在这里插入图片描述
nothing to commit, working tree clean:暂存区里没什么可以提交的,工作目录的对应的树是干净的,工作区也没有什么修改和新建。

6. 更改了文件之后怎么办呢?例如,我把我的xiaowangba.txt文件进行了修改:在这里插入图片描述

这里我们再来看一下状态:在这里插入图片描述

  • 内容解析:
    ①Changes not staged for commit: 有修改没有放入暂存区;
    ② (use “git add …” to update what will be committed):你可以用git add 文件名 这个命令来更新提交
    ③(use “git checkout – …” to discard changes in working directory):用这个命令可以在工作目录里面取消我们的修改,这个涉及到历史记录的问题,后面会讲到
    ④no changes added to commit (use “git add” and/or “git commit -a”):没有可以提交的内容,就是现在我们还没有把更新的内容放在暂存区;后面的命令是说,如果我们可以用这两个命令去对更改的文件进行提交。

以上内容!相信大家有个疑问,能不能不用进入那个vim的编辑器,因为是Linux的系统,还需要按i键,还需要按esc键再输入:wq才能结束输入好麻烦的,有没有别的解决办法呢?

有啊,那就是,你在commit前,用一个命令**"git commit -m "**你想要的写的注释"这个命令来代替后续的烦琐操作就可以辽

总结一下今天最最重点的内容!将文件提交到本地仓库的步骤(命令):
1. git init 创建本地的仓库
2. git add <file名字>
3. git commit -m “备注信息”
4. git commit <file名字>

累屁了,今天就先写到这里吧,晚安

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值