如何全面掌握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 让
目录 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:将本地提交推送到远程仓库,实际删除远程的文件夹。 最终效果:本地文件夹仍然存在,但远程仓库中的目标文件夹及其历史记录会被删除(最新提交中不再包含它)。