Git版本管理

前言

版本控制是为了在开发过程中帮助我们管理文件、工程等,可以方便查看更改的历史记录,备份和恢复之前的版本。
常见的版本控制器有:

GIT

SVN (Subversion)

CVS (Concurrent Versions System)

VSS (Microsoft Visual SourceSafe)

TFS (Team Foundation Server)

现在影响力最大的是Git和SVN。
版本控制又可以分为本地版本控制(就是我们手动的控制文件版本)、集中版本控制(SVN,所有版本都保存在服务起上,协同开发者从服务器上同步更新或上传自己的文件,但服务器崩溃就无法获取文件)、分布式版本控制(所有版本信息仓库全部同步到本地的每个用,在本地可以查看所有版本历史,每个人都能够看到工程的所有代码)

安装Git

安装Git,较为简单,且教程很多,这里就不着重介绍了。

Git配置

设置用户名和邮箱(必要)

在首次安装Git之后首先要做的事情是设置用户名称和e-mail地址。每次Git提交都会使用该信息,因此是非常必要的。

git config --global user.name "xxxx"  #名称
git config --global user.email xxxxx@qq.com   #邮箱

在配置一次后,你可以使用下面的命令进行是否配置成功。

git config --global --list

Git的基本理论

四个工作区域

Git的四个工作区域分别为工作目录、暂存区、资源库、远程Git仓库。文件在四个区域转换关系如下图。

工作区:平时存放项目代码的地方

暂存区:临时存放改动的文件,保存即将提交到文件列表信息

本地仓库:安全存放数据的位置,这里有提交的所有版本数据

远程仓库:托管代码的服务器

Git文件的四种状态

Untracked:为跟踪,此文件在文件夹中,但并没有加入到git库中,不参与版本控制。通过git add将状态变为Staged。

Unmodify:文件已经入库,未修改,即版本库中的文件内容与文件中的完全一致。如果它被修改,就变为Modified,如果使用git rm移出版本库就是Untracked未追踪的文件。

Modified:文件已修改,仅仅是修改,并没有进行其他的操作。通过git add可以进入staged状态,使用git checkout 则丢弃修改过,返回到unmodify状态,这个git checkout是从库中取出文件,覆盖当前修改。

Staged:暂存状态。执行git commit 则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件未Unmodify状态,执行git reset HEAD filename取消暂存,文件状态为Modified。

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

忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立".gitignore"文件,此文件有如下规则:

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。

  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,...})代表可选的字符串等。

  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。

  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。

  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。

    #为注释
    .txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
    !lib.txt #但lib.txt除外
    /temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
    build/ #忽略build/目录下的所有文件
    doc/
    .txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

Git项目搭建

1.本地仓库搭建

创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。

(一)创建全新仓库

在所需要项目管理的根目录下,使用下面的命令,就可以看到一个.git的隐藏文件。

git init

(二)克隆远程仓库

将远程服务器的仓库完全镜像一份到本地

git clone [URL] //[URL]为git远程仓库的网址

2.使用GitHub或者Gitee创建云服务器

3.Git常用的命令

//将当前文件夹设为Git目录
git init
//查看所有文件状态
git status
//添加文件到暂存区
git add/git add .
//提交暂存区中的内容到本地仓库
git commit -m "文件备注"
//提交到远程仓库
git push
相关推荐
清源妙木真菌2 小时前
Linux:git的了解和基础使用(保姆级教程)
git
但老师10 小时前
Git遇到“fatal: bad object refs/heads/master - 副本”问题的解决办法
git
秃头女孩y11 小时前
git创建分支
git
研究是为了理解16 小时前
Git Bash 常用命令
git·elasticsearch·bash
DKPT16 小时前
Git 的基本概念和使用方式
git
Winston Wood19 小时前
一文了解git TAG
git·版本控制
喵喵先森20 小时前
Git 的基本概念和使用方式
git·源代码管理
xianwu54321 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio1 天前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。1 天前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode