零基础学Git,新手入门全指南

6 阅读5分钟

Git简介

1.git是干什么的

git是免费开源的版本控制系统,它被设计用来快速高效的管理项目开发的源码

2.那什么是版本控制?

版本控制就是管理代码不同版本、记录修改历史、支持多人协作、可以随时回退的代码管理方式

3.为什么我们需要版本控制系统?

那是因为我们项目的开发实际上是不断迭代的过程。

4.因为我们提交的代码他可能会出现一系列问题比如:

(1) bug

(2) 用户需求变化

(3) 代码过时,需要优化

5.因此,我们需要不断的对代码进行编正和修改,这就又会带来很多问题。

(1) 开发中代码会存在多个版本,如何将代码在多个版本间切换?

(2) 代码上线后,如何在不影响开发工作的情况下对代码进行维护

(3) 开发时,某段代码被多人修改时,如何处理代码的冲突问题

(4) 存储效率,远程仓库的问题等

6.git有什么用呢

(1) 通过git可以跟踪代码的状态

(2) 修改代码后,对代码进行存储

(3) 还可以在需要时,将已经修改过的代码恢复到之前存储的状态

(4) git管理代码时,可以创建代码分支(branch)

什么是代码分支

代码分支相当于一段独立的代码记录,我们可以对分支上的代码进行任意修改,而这个修改之后影响当前分支,不会对其他分支产生影响。同时,可以对分支进行合并,合并后一个分支的修改可以在另一分支上生效。

7.git安装

非常简单,只有两步。找到官网,无脑next

8.检查

终端,git -v

9.git使用

1.配置

(1) name配置: git config --global user.name "名字"

这段代码意思是:配置全局的user的name属性

(2) email配置:git config --global user.email "电子邮件"

为什么要进行配置

多个程序员维护一段代码,我们对代码进行修改,需要把代码提交到git仓库就出现了个问题?这个代码是谁提的,为了进行区分,name和email就是我们提交代码的一个标识,在学习阶段无所谓写什么,如果是团队协作那这个就需要填写正确的信息

2.git管理(git status查看当前仓库的状态)

我们怎么看一个文件是否在git下管理

(1)打开该文件目录下的终端

(2)在终端输入git status

如果出现 not a git repository (or any of the parent directories): .git 说明现在的目录没有被git所管理

我们怎么让这个项目归git管理呢

对项目初始化: git init

当出现:Initialized empty Git repository in xxx 说明初始化成功

此时文件夹下会出现.git文件,可能操作系统默认隐藏 .开头的文件 用 command + shift +. (Mac) 可以显示,或者去编辑器里面可以看到

如果我们不希望项目被git管理时,只需要删除.git就行了

3.文件状态

项目被git所管理后,git文件有两种状态,未跟踪和已跟踪。未跟踪的文件没有被git所管理,已跟踪的文件已被git所管理。已跟踪的文件又有三种状态,未修改、修改和暂存

(1)未跟踪

刚刚添加到项目中的文件处于未跟踪状态。当你使用 git status时,就会出现 Untracked files:xxxx。

如果你需要跟踪这个文件,需要把未跟踪状态切换到暂存状态(也就是跟踪状态)

git add + 文件名

当出现 Changes to be committed:xxx 字面意思就是变了但是还没提交,这不就是我们说的暂存

(2)已跟踪

暂存,表示文件修改已经保存,但是尚未提交到git仓库

未修改,表示磁盘中的文件和git仓库文件相同,没有修改

已修改,表示磁盘文件已被修改,和git仓库中文件不同

可以通过 git status查看文件状态

所以我们提交逻辑应该是 已修改----暂存----(提交到仓库)----未修改

提交到仓库这一步是便于理解写的 它并不属于文件状态之一

这里的(未修改)代表经过一轮提交了,磁盘中的文件和git仓库文件相同。实际上,被git所跟踪的文件它一直是在这三种状态之间切换

当我们处于暂存状态,我们怎么让它入库呢

git commit -m "xxx" 将暂存的文件存储到仓库中,这里的m 是 message的意思,这个xxx就是用来描述这次提交的说明文字,

比如“初始化项目”、“修改登录Bug”

commit过后 文件由 暂存----未修改 状态

未修改状态

当出现 nothing to commit, working tree clean说明我们所有文件都提交了,并且和git仓库文件是保存一致的

怎么让它处于修改状态

当你修改代码时,文件自动变为修改状态

经过上面描述不难发现,如果你想让修改状态重新变为未修改状态,那就得先进过暂存也就是 add ,然后再commit,这就相当于一个循环的过程

对于上述情况,我们进行提交会发现有点麻烦,此时可以使用 git commit -a -m "xxx",这里的**-a**是all的意思,相当于帮你

省略了手动git add 的步骤(未跟踪的文件不会提交