 版本管理器git的简单使用)
目录一. 简单认识一下 git1.1 本地仓库和远端仓库1.2 去中心化、分布式的版本控制二. git 实操2.1 git 的创建仓库2.2 拉取远端的仓库到本地仓库2.2.1 .git2.2.2 代码版本的修改2.3 在本地仓库添加新的文件2.3.1 工作区和本地仓库2.3.2 添加文件(续)2.3.2.1 git add 和暂存区2.3.2.2 git status2.3.2.3 git commit -m 和 git log2.4 推向远端仓库2.4.2 git push三. git的细节补充3.1 git 的命令行安装3.2 第一次使用git3.3 .gitignore3.4 多用户使用远端仓库3.4.1 git pull一. 简单认识一下 git1.1 本地仓库和远端仓库Git 通过本地仓库和远程仓库实现代码的版本管理与共享。开发者可以在本地独立管理代码及其历史版本也可以借助 GitHub、Gitee 等平台同步代码方便团队成员进行多人协作开发。1.2 去中心化、分布式的版本控制Git 是一个分布式版本控制工具每个开发者都可以通过本地仓库独立管理代码版本。开发者之间既可以通过 GitHub、Gitee 等平台上的远程仓库同步代码也可以直接从对方的 Git 仓库获取代码。因此Git 不依赖中央服务器也能进行版本管理和代码共享。二. git 实操2.1 git 的创建仓库2.2 拉取远端的仓库到本地仓库git clone https://gitee.com/zspnslzx/test-will-be-deleted.git #这条命令的作用是将 Gitee 上的远程 Git 仓库克隆到自己的本地电脑中。 当前目录/ └── test-will-be-deleted/ ├── .git/ ← 本地 Git 仓库保存版本管理信息 ├── README.md ← 项目文件 └── ...2.2.1 .git打开拉取下来的远端仓库我们会发现里面有一个隐藏目录.git严格来说这才是真正的本地仓库。我们会发现.git下有很多信息这些都是什么呢.git/ ├── objects/ ← 保存 Git 对象包括提交、文件内容等 ├── refs/ ← 保存分支、标签等引用信息 ├── HEAD ← 记录当前检出的分支或提交 ├── index ← 暂存区信息 ├── config ← 仓库配置信息 └── ...总结一下.git主要保存 Git 已经记录的代码版本、提交历史、分支、暂存区及配置信息是 Git 实现版本管理的核心。2.2.2 代码版本的修改我们之前对代码版本修改的理解是我先保存好版本A再到版本A的基础上修改成版本B再保存。但是实际上并不是这样。git 只会提交我们修改的部分打个比方我修改了第100行代码他只会记录第100行代码被修改而不是把整个源码都记了下来一般记录到objects目录下2.3 在本地仓库添加新的文件如图我在拉取的仓库下添加了一个文件 test.cpp那么这个文件有没有被本地仓库管理呢2.3.1 工作区和本地仓库在回答上面的问题之前我们先来认识一下两个概念工作区和本地仓库本地仓库这个我们之前提到过拉取目录下的隐藏目录.git才是真正的本地仓库。工作区指我们克隆到本地的项目目录中用于存放和修改项目文件的区域不包括.git目录本身2.3.2 添加文件(续)2.3.2.1 git add 和暂存区回到上面的问题答案是并没有被本地仓库管理我们还需要一系列操作才行。git add test.cpp#git add将工作区中指定文件的修改添加到暂存区为提交做准备。但是要注意的是 git add 也只是将文件存入暂存区这一步还没有放入本地仓库我们还需要git addmit2.3.2.2 git statusgit statusgit status 用于查看当前 Git 仓库的状态了解工作区和暂存区中文件的变化情况。git status 查看文件时常见的有以下几种状态状态含义Untracked未跟踪新创建的文件还没有被 Git 跟踪Unmodified未修改文件已被 Git 跟踪但没有发生变化Modified已修改已跟踪的文件发生了修改但修改尚未暂存Staged已暂存文件的变化已经通过git add添加到暂存区2.3.2.3 git commit -m 和 git loggit commit -m 有效信息#git commit -m将暂存区中的内容提交到本地仓库形成一个新的历史版本#其中 -m 用于指定本次提交的说明信息。为什么推荐git commit带上选项 -m,并且信息必须是有效的Git 的提交记录会保存在版本历史中其他人克隆包含这些提交的仓库后也能通过git log查看。因此每次提交都应该认真填写提交说明。git log#用于查看 Git 本地仓库的历史提交记录包括每次提交的提交编号、提交者、提交时间和提交说明等信息。2.4 推向远端仓库2.4.2 git pushgit push#用于将本地仓库中的提交记录推送到远程仓库如 Gitee、GitHub实现代码和版本历史的同步。输入gitee的账号密码即可完成向远端仓库的推送我们也可以验证一下三. git的细节补充3.1 git 的命令行安装之前讲包管理器的时候我们提到过怎么安装软件这里就不在多说ubuuntu环境 sudo apt install -y git centos环境 sudo yum install -y git3.2 第一次使用git我们第一次使用git时往往会提醒我们输入用户名和邮箱Git 首次配置用户名和邮箱本质上是为当前用户设置默认的代码提交者信息。Git 会保存这些信息后续提交时直接读取。如果切换 Linux 用户新用户通常需要配置自己的信息。3.3 .gitignore一般来说git版本管理只管理源文件并不包括各种临时文件。git本身也提供一种文件忽略机制用于指定哪些文件或目录不需要被 git 管理。就是项目目录下的 .gitignore文件。我们也可以用vim访问一下.gitignore我们也可以验证一下我先创建了一个test.apk文件再用 git add 添加到暂存区会发现结果失败了3.4 多用户使用远端仓库现实生活中可能会有多个用户使用同一个库那么冲突就不可比避免。假设用户 A 和 B 共同使用一个远端仓库A 修改了test1.cpp并成功推送到远端仓库B 修改了test2.cpp并提交到本地仓库。此时 B 执行git push由于远端仓库已经有了 A 的新提交而 B 的本地仓库没有这些提交因此 B 的推送会被拒绝需要先通过git pull获取并整合远端最新代码再重新推送。3.4.1 git pullgit pull#用于从远端仓库获取最新的代码和提交记录并将其整合到当前本地分支中。