Git使用教程-安装、配置、建立本地仓库、本地仓库的基本操作(查看工作区的文件状态,添加文件至暂存区,提交,查看提交日志,版本回退)

发布时间 2023-09-01 20:10:03作者: 几人著眼到青衫

Git介绍

一、 为什么要学习Git?

  在开发一个软件时,这份工作通常需要一个team来完成。我们把这个软件划分为不同的模块,每个人负责一个模块的开发和维护。在这个过程中,如何保持team中成员软件开发的同步,保存开发周期中各个历史版本,解决team中成员间开发的版本冲突?Git是对这个问题的最好的答案。

  Git是由Linus Torvalds 为帮助管理Linux内核而开发的一个开源的版本控制软件。Git是分布式版本控制工具,它具有以下特点:速度、简单的设计、完全分布式、对非线性开发提供强有力的支持、能够管理像Linux内核这样的大型软件,所以他有较快的速度和支持数据量比较大的版本管理。

  Git有本地仓库和远程仓库组成:

 

二、Git的安装

  安装过程比较简单,一路next即可,这里不再讲述。需要说明的是完成Git的安装后,他会提供Git bash的命令行界面,命令的语法规则同Linux。这也是因为他是为管理Linux内核的而生的。当然不熟悉命令行界面的也可以使用Git提供的图形化界面工具Git GUI。建议使用Git bash,还能方便你联系使用Linux的各种常用命令。

三、Git的配置

  配置邮箱user.email和用户名user.name

git config --global user.name "***"

git config --global user.email "***"

  

 

四、本地仓库和远程仓库的操作

先放张Git的工作流程图

 

  Git就是个版本控制软件,他可以管理任何事物的各种版本(不局限于程序)。这里我们以一个文件夹举例,这个文件夹里可以以存放各种文件(.c,.cpp,.a,.h,.bak等等)。

本地仓库操作

一、本地仓库的操作

(1)建立本地仓库

我们在使用Git对这个文件夹进行版本管理时,我们需要让这个文件夹与Git建立联系,可以这么理解“为这个文件夹添加Git版本工具,或者将这个文件夹纳入Git管理的范畴”。下面演示一下这个文件夹与Git建立联系的过程:对目标文件夹进行Git 初始化。每一个被Git初始化过的文件夹都是一个本地仓库。

命令:git init

我们在一个空的文件夹git_show中进行操作,将这个文件夹在GitBash中打开

 

  

这里我们文件夹git_show创建文件夹git_demo1,并把它初始化为一个本地仓库:

 (2)本地仓库工作区划分与文件状态的变化

  我们把本地仓库的几个区域:工作区、暂存区和仓库。我们对文件进行操作时,文件的状态会发生改变。所有文件都在工作区中,而且新文件的初始状态处于未跟踪。当对文件进行修改后文件的状态会变为未暂存(还是未追踪,此状态可以忽略),我们使用 git add filename 将文件添加到暂存区 ,文件的状态变为已暂存状态(未提交),使用git commit -m "**",将暂存区的文件提交到仓库中。

 

 

 查看文件状态(git status):

 我们对file1.txt进行修改,并加入到暂存区(git add file1.txt),file2.txt不动,再来查看文件的状态:

 看到file1.txt的状态是等待被提交(未提交),file2.txt是未跟踪。接下来我们将file1.txt,file2.txt都将提交到仓库中

 查看提交日志:git log --[options],我在这里创建了给git log 和一些常用参数起了个别名git-log。在~/.bashrc中添加,并source一下。

#查看git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'

 创建文件file3.txt,file4.txt。然后分别提交,查看提交日志,再来版本回退(git reset -)。

 

 此时我们进行回退后发现有一次提交不见了,如果我们想回到消失的那个状态可以使用git relog,查看所有提交的状态,然后执行git reset --hard ***

 如果我们想要工作目录中某些文件不被git管理,添加.gitignore。例如此时我们要求.a文件不被git管理。我们进行演示:此时我们是含有.ignore,工作目录是含有file1.a的。这时我们删除.gitignore,查看状态。再来进行版本回退。可以看到工作区中文件状态的变化。

 查看.gitignore的文件的内容