Git

版本控制

什么是版本控制

版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

  • 实现跨区域多人协同开发
  • 追踪和记载一个或者多个文件的历史记录
  • 组织和保护你的源代码和文档
  • 统计工作量
  • 并行开发、提高开发效率
  • 跟踪记录整个软件的开发过程
  • 减轻开发人员的负担,节省时间,同时降低人为错误

简单说就是用于管理多人协同开发项目的技术。

没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。

无论是工作还是学习,或者是自己做笔记,都经历过这样一个阶段!我们就迫切需要一个版本控制工具!

启动Git

安装成功后在开始菜单中会有Git项,菜单下有3个程序:任意文件夹下右键也可以看到对应的程序!

图片

Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多

Git CMD:Windows风格的命令行

Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

常用的Linux命令

平时一定要多使用这些基础的命令!

1)、cd : 改变目录。

2)、cd . . 回退到上一个目录,直接cd进入默认目录

3)、pwd : 显示当前所在的目录路径。

4)、ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。

5)、touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。

6)、rm: 删除一个文件, rm index.js 就会把index.js文件删除。

7)、mkdir: 新建一个目录,就是新建一个文件夹。

8)、rm -r : 删除一个文件夹, rm -r src 删除src目录

rm -rf / 切勿在Linux中尝试!删除电脑中全部文件!

9)、mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。

10)、reset 重新初始化终端/清屏。

11)、clear 清屏。

12)、history 查看命令历史。

13)、help 帮助。

14)、exit 退出。

15)、#表示注释

Git配置

设置用户名称和 e-mail 地址

git config --globsl --list #查看当前用户配置

image-20230609132221802

配置代理

git config --global http.proxy http://127.0.0.1:7890

git config --global https.proxy https://127.0.0.1:7890

image-20250206150547764

  • 四大工作区域:

    Git 本地有三个工作区域:

    • 工作区(Working Directory)
    • 暂存区(Stage/Index)
    • 仓库区 (Repository)
    • 再加上远程的 git 仓库(Remote Directory) 就可以分为四个工作区域

    具体说明一下:

    • 工作区:就是你平时存放代码的地方
    • 暂存区:用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
    • 仓库区(本地仓库):就是安全存放数据的位置,这里面有你提交到所有版本的数据
    • 远程仓库:就是托管代码的服务器(比如 Github/Gitee),也可以简单的认为是一台用于远程数据交换的电脑

工作流程

git的工作流程一般是这样的:

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

image-20230609144725222

本地仓库搭建

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

创建全新的仓库

# $ git init
  • 在已有的项目代码文件夹处右键,点击Git Bash Here进入命令行输入 git init ,然后就会出现一个隐藏的文件夹 .git

image-20230609145425742

克隆远程仓库

1、另一种方式是克隆远程目录,由于是将远程服务器上的仓库完全镜像一份至本地!

# $ git clone [url]  # https://gitee.com/kuangstudy/openclass.git

image-20230609150818903

文件的4大状态:

  • Untracked: 未跟踪,在文件夹中,,但并没有加入到 git 库,,不参与版本控制,需要通过 git add 状态变为 Staged
  • Unmodify: 未修改,文件已经入库,而且与工作区的内容相同。

    1. 如果想要把他移出版本库,可以使用 git rm 移出去不再同步
    2. 如果被修改了,就会变成 Modified 已修改状态
  • Modified: 已修改,这种文件有两个去处

    1. 可以使用 git add 将其加入暂存区
    2. 也可以使用 git checkout 丢弃修改过的内容,返回到刚刚 未修改 的状态(即从库中取出文件,覆盖当前已修改的文件)
  • Staged: 暂存状态,同样,也有两个去处

    1. 执行 git commit 则将其同步到库中,此时版本库与工作区一致,变成未修改状态
    2. 执行 git reset HEAD filename 取消暂存, 文件状态变为已修改状态

执行流程

git add . 加入暂存区
git status 查看状态

image-20250206150930398

使用 git commit -m "自定义一些需要携带的信息"

git commit -m "第一次提交"

image-20250206151317761

把当前的文件夹和远程仓库绑定 git remote add origin [远程仓库URL地址]

 git remote add origin https://github.com/DreamTes/GIt_demo.git

检查一下我们的仓库分支是什么,这个是一开始新建仓库时可以指定的,比如main或者master,刚刚在GitHub建仓库的时候默认是main了

image-20250206151639001

调用push指令将其更新到远程仓库,指令是 git push -u origin [仓库分支]

 git push -u origin main

image-20250206151743563

image-20250206151755150

Vscode使用git

image-20250206151945666

重新写了一个txt文件

提交上传本地仓库

image-20250206152232660

此时本地仓库要先于github,继续点同步即可上传github

image-20250206152218118

image-20250206152244453