mingw

发布时间 2023-10-17 20:16:44作者: LupinThree

Git

介绍

版本控制的概念

是一种在开发过程中,用于方便管理我们(多人协作)的代码、修改、版本、工程修改,便于查看历史记录、备份、恢复以前版本的技术。

版本控制器的三种类型

1.本地版本控制

记录文件每次的更新,对每一个版本做一个快照存储在本地计算机(适合个人。如rcs)

反对

2.集中版本控制

所有数据统一在远程服务器上,本地只有以前版本的数据,使用前需要从远程服务器上同步到本地,在修改编辑,上传到远程服务器。

(如SVN,CVS,VSS)

3.分布式版本控制

所有文件都可以同步到本地计算机仓库,然后在同步到远程服务器。相当于每个本地计算机都是一个仓库,但还是要上传到统一的远程服务器。

如Git。

Git的历史

Git是linux系统创始人linus两周开发出来的,是为了便于管理linux系统开源社区的代码的协同开发,减少工作量,提高开发效率。


Git的使用

Git基本介绍

安装与环境配置

安装

官网 Git - 安装 Git (git-scm.com)

windows:一直点下一步就行了

linux:

环境配置

配置命令

git config -l  #查看配置
git config --system --list  #查看系统配置
git config --global --list  #查看当前用户配置

注意事项

Git相关的配置文件:

  1. Git\mingw64\etc\gitconfig :Git 安装目录下的 gitconfig --system 系统级

  2. C:\Users\Administrator\ .gitconfig 只适用于当前登录用户的配置 --global 全局

    这里可以直接编辑配置文件,通过命令设置后会响应到这里。

设置用户名与邮箱(非常重要)

当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都
会使用该信息。它被永远的嵌入到了你的提交中:

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

只需要做一次这个设置,如果你传递了--global 选项,因为Git将总是会使用该信息来处理你在系统中所

做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行

该命令而不要--global选项。 总之--global为全局配置,不加为某个项目的特定配置。

Git的三种终端介绍
Git Bash

类似于Unix、Linux的终端操作。

常用命令

cd  #进入目录
ls  #列出目录下的文件
mkdir  #创建一个目录
toush  #创建一个文件
rm -ft  #删除文件或目录
mv  #移动文件或目录
cp  #复制文件或目录
pwd  #显示当前路径
clear  #清理当前终端界面
reset  #重启终端
history  #列出历史命令
Git CMD

类似于Windows的终端操作

Git GUI

Git的图形操作界面

Git的基本理论与操作流程

基本理论

Git的四个工作区域

  1. 工作目录:编写、存放代码的文件目录
  2. 暂存区:暂时存储工作区代码的修改,实质上是一个文件记录版本的修改
  3. 资源区:本地版本存储仓库
  4. 远程存储库:远程统一的代码版本控制存储库(如Gitee,Github)

四个工作区关系如下图

操作流程

  1. 在工作目录中添加、修改文件:
  2. 将需要进行版本管理的文件放入暂存区域;
  3. 将暂存区域的文件提交到gt仓库。
    因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

如图

Git文件状态与关系

文件状态

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,
不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

  1. Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过 git add
    状态变为 Staged .
  2. Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文
    件有两种去处, 如果它被修改, 而变为 Modified . 如果使用 git rm 移出版本库, 则成为
    Untracked 文件
  3. Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过 git
    add 可进入暂存 staged 状态, 使用 git checkout 则丢弃修改过, 返回到 unmodify 状态,
    这个 git checkout 即从库中取出文件, 覆盖当前修改 !
  4. Staged: 暂存状态. 执行 git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一
    致, 文件为 Unmodify 状态. 执行 git reset HEAD filename 取消暂存, 文件状态为
    Modified
如何查看文件状态
git status  #查看所有文件状态
git status [fliename]  #查看指定文件状态
转换关系

如图

Git项目搭建与常用命令

项目搭建

本地仓库搭建
  1. 创建全新的仓库:在该仓库的本地目录下进入Git Bash终端输入以下命令

    git init  
    

    此时会出现一个.git的隐藏文件,该文件就记录了所有的版本信息

  2. 远程目录克隆一个目录:即该仓库的本地目录下进入Git Bash终端输入以下命令

    git clone [远程目录url]
    

    此时该目录下就会出现与远程目录一样的目录

远程版本存储库的搭建

Gitee搭建

  1. 注册登录码云,完善个人信息
  2. 设置本机绑定SSH公钥,实现免密码登录!
# 进入 C:\Users\Administrator\.ssh 目录
# 生成公钥
ssh-keygen -t rsa
  1. 将公钥信息public key 添加到码云账户中即可!
  2. 使用码云创建一个自己的仓库

Github搭建

Git常用命令

git add  #添加工作区文件到暂存区
git commit  #将暂存区文件上传的本地版本库
git push  #将本地版本库文件上传到远程版本库
git pull  #从远程版本库下载文件到工作区
git fetch/clone  #从远程版本库下载文件到本地版本库
git checkout  #从本地版库将文件移动到工作区
git rm  #将文件移出本地版本库
git reset HEAD [filename]  #指定退回某一次提交的版本

如何忽略不想上传的文件

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

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

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号

([abc])代表可选字符范围,大括号({string1,string2,...})代表可选的字符串等。

  1. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  2. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不

忽略。

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

(默认文件或目录都忽略)。

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

Git分支