Git 讲解及使用(超详细)
目录
1 Git 研究
1.1 随记
1.2 Git 基础知识
1.2.1 什么是 Git?
1.2.2 Git 工作流图
1.2.3 Git 中的文件状态
1.2.4 Git 操作命令
1.2.5 对 Git 进行配置
1.2.5.1 让 Git 忽略某个或某类文件
2 选择一个免费的远程仓库
2.1 Codeup 讲解
2.1.1 Codeup简介
2.1.2 Codeup 操作使用
2.2 在 Windows 上使用 Git
2.2.1 克隆远程仓库到本地
2.2.2 把本地仓库推送到远程仓库
2.3 在 Ubuntu 上使用 Git
2.4 在 Ubuntu 上安装 Git
2.4.1 克隆远程仓库到本地
2.4.2 把本地仓库推送到远程仓库
3 疑难解决
3.1 VScode 提交 Git 代码总是要输入账号和密码的问题
3.2 Git 忽略本地仓库中的所有 .idea 文件夹及其子文件夹
3.3 删除Git曾经跟踪过的文件或文件夹
Git 研究
随记
-
Git的下载地址:https://git-scm.com/
-
当在某个节点创建一个分支后,并不会把该节点对应的代码复制一份出来,只是将新分支指向该节点,因此可以很大程度减少空间上的开销。一定要记着不管是HEAD还是分支它们都只是引用而已,量级非常轻。
-
repository:英/rɪˈpɒzət(ə)ri/,仓库。
-
Git bash是版本控制软件的意思。在任何地方鼠标右键选择“Git Bash Here”,都可以在那个地方建立一个Git的终端控制台。当然,也可以在其他的终端中操作使用Git。
Git 基础知识
什么是 Git?
Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
Git分为三部分:远程仓库、本地仓库和工作区。
Git 工作流图
图1

图2

Git 中的文件状态
在Git中文件大概分为三种状态:已修改(modified)、已暂存(staged)、已提交(committed)。
- 修改:Git可以感知到工作目录中哪些文件被修改了,然后把修改的文件加入到modified区域。
- 暂存:通过add命令将工作目录中修改的文件提交到暂存区,等候被commit。
- 提交:将暂存区文件commit至Git目录中永久保存。
Git 操作命令
- git status:命令用于查看Git仓库的当前状态,即查看工作区、暂存区和仓库之间的差异。执行git status命令后,Git 会输出当前仓库的状态信息。
- git clone:用于从远程仓库克隆一个完整的Git仓库到本地,作为本地仓库副本。通过git clone命令,你可以获取远程仓库的所有文件和历史记录,并在本地创建一个与远程仓库相同的副本。
对 Git 进行配置
让 Git 忽略某个或某类文件
- 让 Git 忽略某类文件:*.iml
- 让 Git 忽略某个文件:Thumbs.db
选择一个免费的远程仓库
由于国内操作 Github 网速太慢,因此我选择了阿里云的 Codeup。
Codeup 讲解
Codeup简介
- 免费的代码仓库,中文名:云效, 阿里云的产品。官方网址:https://www.aliyun.com/product/yunxiao,免费提供 5 GB Git存储空间(默认单个代码库 10GB 空间,包括 5GB Git 容量和 5GB 大文件存储(即Git LFS)空间),对平时个人开发项目而言足够了。。
- 单文件上传大小存在限制:代码库中通过 Web 上传单个文件不得超过 50 M、通过命令行上传的单个文件不得超过 200 M。【注意:通过VS Code同步上传属于命令行上传】
Codeup 操作使用
- 云效工作台→代码管理→点击右上角的头像,选择“个人设置”→选择“HTTPS 密码”,设置克隆账号和克隆密码。
- 点击“代码管理”,进入仓库→点击“克隆/下载”,在 HTTPS 中复制地址,后面要用。【说明: 因为我以前已经在Codeup上建立了远程仓库,故有此步骤】
在 Windows 上使用 Git
克隆远程仓库到本地
在电脑桌面上单击鼠标右键,选择“Git Bash Here”,在其中执行下面的操作:
- 配置用户名:git config --global user.name '你在这台电脑上使用 Git 时想用的用户名'
- 配置邮箱:git config --global user.email '你在这台电脑上使用 Git 时想用的邮箱'
- 从Codeup(云效)上克隆一个远程仓库到本地。执行命令:git clone '前面记录的 Codeup 的远程仓库地址'
- 输入 Codeup 的克隆账号和克隆密码。
- 此时,电脑桌面上就有了一个文件夹,文件夹名和你远程仓库的名字一致,这个就是你的本地仓库。
- 在VS Code中打开这个文件夹。这样,就能让 VS Code 操作 Git 代码库了。
配置账号和邮箱的目的: 在使用Git前,首先要对Git进行用户设置,这样就可以知道以后的某个操作是谁做的。
把本地仓库推送到远程仓库
-
第一步:把当前目录初始化为一个新的Git仓库。
- 创建文件夹作为一个新的Git仓库。在桌面上创建一个文件夹 test,这个文件夹就是Git仓库,工作区、暂存区和本地版本区都会在这个 test 文件夹中操作。在这个文件夹中打开命令行。
- 执行命令:git init
解释:如果你想使用Git进行版本控制,你需要首先执行git init来把该目录初始化为一个新的Git仓库,git init命令是必需的步骤。具体来说,执行git init命令后会在当前目录下创建一个名为.git的子目录,该子目录包含了Git仓库所需要的各种配置文件和对象数据库。通过这些文件,Git能够追踪、管理和记录目录中文件的修改历史。如果没有执行git init,Git将无法跟踪、管理和记录文件的修改历史,并无法进行其他Git操作。
-
第二步:建立了本地仓库后,在PhoStorm或VSCode中打开本地仓库,然后进行提交并推送即可。
在 Ubuntu 上使用 Git
在 Ubuntu 上安装 Git
- 官网下载:https://git-scm.com/?hl=zh-cn
- 点击“Install”,找到“Debian/Ubuntu”部分,按照指示操作即可安装Git。
克隆远程仓库到本地
操作方法和在 Windows 上基本一样,只是在 Ubuntu 的终端进行操作而已。
把本地仓库推送到远程仓库
操作方法和在 Windows 上基本一样,只是在 Ubuntu 的终端进行操作而已。
疑难解决
VScode 提交 Git 代码总是要输入账号和密码的问题
- 进入VScode,打开终端(ctrl+shift+Y),点击新终端后进入文件位置,输入
git config --global credential.helper store - 关闭并重新打开项目,第一次提交代码时输入账号和密码,之后就再也不用输入啦!Get it!
解释:
git config --global credential.helper store 这个命令用于配置 Git 的凭据助手(credential helper)为 "store"。
凭据助手是用来管理 Git 凭据的工具。在这个命令中,"store" 是一个简单的凭据助手,它会将凭据以明文形式保存在本地磁盘上,而不需要每次都输入用户名和密码。
执行这个命令后,Git 会将凭据存储在一个文件中,通常是用户主目录下的 ".git-credentials" 文件(具体路径可能会有所不同)。下次操作时,Git 会自动读取该文件中的凭据,从而避免每次都要求输入用户名和密码。
请注意,使用 "store" 凭据助手存储凭据会有一定的安全风险,因为凭据以明文形式保存在本地。如果你担心安全性问题,可以考虑使用其他更安全的凭据助手,如 "cache" 或 "osxkeychain"(适用于 macOS),它们可以更安全地存储凭据。
Git 忽略本地仓库中的所有 .idea 文件夹及其子文件夹
如果你使用的是 PhpStorm,并且在两台电脑上操作仓库,那么需要执行这一步操作。具体步骤:
- 在项目根目录下(和.git文件夹同级)创建文件“.gitignore”。
- 在.gitignore文件中输入以下规则:
# 忽略所有层级的 .idea 文件夹
\*\*/.idea/
解释:**/ 是 Git 的递归通配符,表示匹配任意层级的目录。
删除Git曾经跟踪过的文件或文件夹
例如:如果根目录或各个子目录中的 .idea文件夹已被 Git 跟踪过,现在想把他们从 Git 记录中删除:右击选择“Open Git Bash Here”,输入以下内容:
# 递归删除所有已跟踪的 .idea 文件夹(保留本地文件)
# 从 Git 的跟踪列表中移除所有已提交的 .idea 文件夹(包括子目录中的),但不会删除本地硬盘上的文件。这里有两种方法,一是:git rm --cached -r **/.idea/,**/ 是 Git 的递归通配符,表示 匹配任意中间目录(包括零层或多层)。二是:git rm --cached -r .idea/,如果模式不以 / 开头,Git 会默认匹配项目中的所有层级目录,在这里是忽略项目中所有位置的 .idea 文件夹(包括根目录和子目录中的)。
git rm --cached -r **/.idea/
# 提交更改
# 将上一步的「删除跟踪」操作生成一个提交记录,并附加注释说明此次变更的目的,记录到本地仓库的版本历史中。注意:此操作仅在本地生效,尚未同步到远程仓库(如 GitHub、GitLab)。
git commit -m "Remove all .idea folders from Git tracking"
# 将本地仓库中的提交(即「删除 .idea 跟踪」的变更)推送到远程仓库,使其他协作者也能看到此次变更。以后所有开发者后续拉取代码时不再包含 .idea 文件夹的跟踪。
git push
解释:
git rm: Git 删除命令。
--cached: 仅从 Git 的跟踪列表中删除,保留本地文件。
-r: 递归操作
git commit -m "...":将上一步的「删除跟踪」操作生成一个提交记录,并附加注释说明此次变更的目的,记录到本地仓库的版本历史中。
git push:将本地提交推送到远程仓库,实际删除远程的文件夹。
最终效果:本地文件夹仍然存在,但远程仓库中的目标文件夹及其历史记录会被删除(最新提交中不再包含它)。

浙公网安备 33010602011771号