工具篇-完整的 Git 项目管理工具教程(在命令框中使用 Git、在 IDEA 中使用 Git)

工具篇-完整的 Git 项目管理工具教程(在命令框中使用 Git、在 IDEA 中使用 Git)
🔥博客主页: 【小扳_-ZEEKLOG博客】
❤感谢大家点赞👍收藏⭐评论✍

文章目录

        1.0 Git 概述

        2.0 Git 的安装和配置

        3.0 获取本地仓库

        3.1 基础操作指令

        3.2 分支

        4.0 Git 远程仓库

        4.1 创建远程仓库

        4.2 配置 SSH 公钥

        4.3 操作远程仓库

        5.0 使用 IEAD 中使用 Git

        5.1 在 IDEA 中配置 Git

        5.2 在 IDEA 中操作 Git


        1.0 Git 概述

        Git 是一种分布式版本控制系统,用于跟踪文件的修改以及协作开发中的源代码管理。它由 Linus Torvalds 于 2005 年创建,主要用于支持 Linux 内核的开发。以下是 Git 的一些关键概述:

        1)分布式架构:每个开发者的工作站都可以完整地克隆整个版本库,拥有所有文件和版本历史。这使得 Git 的操作更加高效,即使在没有网络的情况下也能进行大多数操作。

        2)版本控制:Git 能够记录文件的所有修改历史,这样开发者可以轻松地回滚到先前的版本,比较不同版本间的差异,以及恢复误删的内容。

        3)速递(Snapshot):Git 采用“快照”的概念管理文件,而不是简单的差异记录。每当你提交变化(commit)时,Git 会记录文件的当前状态,形成一个新的快照。

        4)分支与合并:Git 允许创建多个分支(branches),使得开发人员可以独立于主线进行功能开发和实验。分支的合并(merge)也相对简单,并且可以处理重复修改的情况。

        5)高效性:Git 的设计目标使其在处理大文件和历史记录时效率极高,操作大多数都是本地进行,快速响应。

        6)开放源代码:Git 是开源的,这意味着任何人都可以使用、修改和分发其源代码,促进了广泛的社区支持和插件开发。

        7)工作流程:Git 提供了许多工作流程,如集中式工作流、功能分支工作流、GitFlow等,适合不同规模和类型的项目。

        8)平台支持:Git 支持多个操作系统,包括 Linux、Windows 和 macOS,且与许多代码托管平台(如 GitHub、GitLab 和 Bitbucket)兼容,增强了协作能力。

Git 工作流程图:

        1)clone 克隆:从远程仓库中克隆代码到本地仓库。

        2)checkout 检出:从本地仓库中检出一个分库分支然后进行修订。

        3)add 添加:在提交前先将代码提交到暂存区。

        4)commit 提交:提交到本地仓库。本地仓库中保存修改的各个历史版本。

        5)fetch 抓取:从远程库抓取到本地仓库中,不进行任何的合并动作,一般操作比较少。

        6)pull 拉取:从远程库拉到本地库,自动进行合并,然后放到工作区,相当于 fetch + merge

        7)push 推送:修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库。

        2.0 Git 的安装和配置

        Git 的下载:Git (git-scm.com)

选择:

        接着,本地就得到了安装包:

        再接着双击,全部直接采取默认配置,一直点 next 即可。如果需要特殊配置,可以进行选择,一般选择默认配置完全够用了。

        最后,安装完成之后:

        可以看到这两个工具,最常使用的是通过命令来操作。

        当安装完 Git 之后首先要做的事情是设置用户名和 email 地址。这是非常重要的,因为每次 Git 提交都会使用该用户信息。

        1)打开 Git Bash:

        2)设用用户信息:

        设置用户信息命令:

        查看当前用户信息命令:

举个例子:

为常用指令配置别名:

        有些常用的指令参数非常多,每次都要输入好多参数,此时就可以使用别名。

        1)打开用户目录,创建 .bashrc 文件

        部分 windows 系统不允许用户创建点号开头的文件,可以打开 gitBash,执行: touch ~/.bashrc 命令。

        2)在 .bashrc 文件中输入如下内容:

        可以通过 vi 指令的方式,将以上命令粘贴到 .bashrc 文件中,小提示:粘贴的时候,不能通过 crt + v 的方式,在 gitBash 中通过点击鼠标滚轮进行粘贴。如果从 gitBash 中复制内容,选中需要复制的内容即可。

        

        3.0 获取本地仓库

        要使用 Git 对我们的代码进行版本控制,首先需要获得本地仓库:

        1)在本地任意位置创建一个空目录,作为我们本地 Git 仓库。

        2)进入这个目录中,点击右键打开 Git Bash 窗口。

        3)执行命令 git init

        4)如果创建成功后可在文件夹下看到隐藏的 .git 目录。

举个例子:

        3.1 基础操作指令

        Git 工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着执行的 Git 的命令而发生变化。

        1)查看修改的状态

        查看的修改状态(暂存区、工作区)。

        命令形式:

        当前创建 text02.txt 文件,再来通过 git status 指令查看修改状态。

        2)添加工作区到暂存区

        添加工作区一个或多个文件的修改到暂存区。

        通过 git add 单个文件名或者通配符,比如:'git add .' 将所有修改加入暂存区、'git add text02.txt' 将 'text.txt02' 文件的修改放到暂存区。

举个例子:

        通过 git add . 指令,将文件添加到暂存区中,再来通过 git status 指令查看当前状态。

        3)提交暂存区到本地仓库

        提交暂存区内容到本地仓库的当前分支。

        命令形式:

举个例子:

        通过 git commit -m 'commit text02' 指令将其提交到本地仓库中,接着通过 git status 指令来查看暂缓区、工作区情况。可以看到,此时为空状态,无需提交任何内容,工作树干净。
        4)查看提交日志

        在之前配置中,配置了日志相关的信息。通过 git-log 指令来查看提交记录。

举个例子:

        通过 git-log 来查看提交的日志,之前将 text01 进行了提交,d2ec3cd 可以将其理解为唯一标识,通过该唯一标识可以进行回滚到指定的版本。在日志文件中,处于最开头的日志是最新的日志。HEAD->master:当前的分支为 master 的主分支。

        通过 git-log 是来查看提交的日志,而 git status 是来查看暂缓区、工作区的情况。

        5)版本回退

        版本切换,通过命令形式:

        commitID 可以使用 git-log 或者 git log 指令查看。

举个例子:

        回退到 d2ec3cd 版本之后,发现 text02.txt 文件消失了,再通过日志查看,当前状态为 d2ec3cd 。这就是回滚到 d2ec3cd 版本状态。

        可以再次回滚到 a5ee363 版本,恢复 text02.txt 文件:

        6)添加文件至忽略列表

        一般总会有些文件无需纳入 git 的管理,也不希望这些文件出现在未跟踪文件列表。通常都是一些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。在这种情况下,可以在工作目录中创建一个名 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。

举个例子:

        - 创建 .gitignore 文件:

        - 编辑 .gitignore

        比如说,将 .a 文件为后缀的不需要进行 git 的管理,则在 .gitignore 文件添加 .a 即可:

        提交 .gitignore 文件:

        此时可以发现 ign.a 还未添加、提交到本地中,现在来查看当前工作区情况:

        此时工作区表示没有文件需要提交,工作树很干净。这就说明了已经忽略 ign.a 文件。

        3.2 分支

        几乎所有的版本控制系统都以某种形式支持分支,使用分支意味着可以把你的工作从开发主线上分离开来进行重大 Bug 修改、开发新的功能,以免影响开发主线。

        1)查看本地所有分支

        命令:

举个例子:

        当前分支就只有一个 master 主分支。 

        2)创建本地分支

        命令:

举个例子:

        成功创建本地分支,不过当前还是处于 master 主分支上。

        3)切换分支

 举个例子:

        从 master 主分支切换到 dev01 分支上。 

        还可以直接切换到不存在的分支(创建并切换)

举个例子:

        创建了 dev02 分支且切换到 dev02 分支上。 

        4)合并分支

        一个分支上的提交可以合并到另一个分支。

        命令:

举个例子:

        当前是 dev02 分支,在该分支上创建且提交了 text03 文件:

        接着来到 master 分支上:

        可以看到,此时在 master 分支上不存在 text03 文件。

        接着将 dev02 分支合并到 master 分支上:

        合并完之后,在 master 分支上就出现了 text03 文件了,从日志中看到,此时 master和 dev02  分支都在同一个版本,而 dev01 在先前没有 text03 的版本。

        5)删除分支

        不能删除当前分支,只能删除其他分支。

        删除分支时,需要做各种检查:

举个例子:

        删除分支 dev02:

        删除分支时,不需要做任何检查,强制删除:

        6)解决冲突

        当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:

        - 处理文件中冲突的地方

        - 将解决完冲突的文件加入暂存区

        - 提交到仓库

举个例子:

        在当前版本上创建了 dev01 分支:

        接着,在 master 分支上修改 text03 文件:

        添加了一行 "Hello Git" 。

        将其添加且提交到本地仓库中:

        再切换到 dev01,也是对 text03 文件进行修改:

        修改的地方是一样的,但是不同内容。

        再接着,将 dev01 合并到 master 过程中就会出现冲突:

        合并失败,此时可以查看 text03 文件:

        因为两个分支对同一个地方进行了修改,git 也不知道如何来解决。

        因此,可以通过手动来解决,选择最终的内容:

        根据需求,我选择 "Hello Git" 的内容。

        最终,再将最终修改的文件添加并提交到本地仓库中:

        7)开发中分支使用原则与流程

        几乎所有的版本控制系统都以某种方式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的 Bug 修改、开发新的功能,以免影响开发主线。

        在开发中,一般有如下分支使用原则与流程:

        - master 生产分支

        线上分支,主分支,中小规模项目作为线上运行的应用对应的分支。

        - develop 开发分支

        是从 master 创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同使其上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到 master 分支,准备上线。

        - feature 分支

        从 develop 创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到 develop 分支。

        - hotfix 分支

        从 master 派生的分支,一般作为线上 bug 修复使用,修复完成后需要合并到 master、test、develop 分支。

        还有一些其他分支,这里就不再过多详述。

        4.0 Git 远程仓库

        前面已经知道了 git 中存在两种类型的仓库,即本地仓库和远程仓库,那么我们如何搭建 git 远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有 GitHub、Gitee(码云)、GitLab 等

        码云(地址:码云官方 (gitee.com))是国内的一个代码托管平台,由于服务器在国内,所以相比于 GitHub,码云速度会更快。

        GitLab 是一个用于仓库管理系统的开源项目,使用 git 作为代码管理工具,并在此基础上搭建起来的 web 服务,一般用于企业、学校内部网络搭建 git 私服。

        4.1 创建远程仓库

        先在码云上注册完成,接着就可以搭建远程仓库了:

        接着往下走:

        点击创建完之后:

        4.2 配置 SSH 公钥

        一般对于个人来说,不太需要配置这个,我们往该远程仓库推送数据的时候,通过用户名和密码进行验证就行了。对于公司来说,需要配置 SSH 公钥。

        1)生成 SSH 公钥

        在本地仓库输入如下指令:

        接着不断按回车如果公钥已经存在,则自动覆盖。

        获取公钥命令:

        获取到 SSH 公钥之后,在码云上设置账户 SSH 公钥:

        最后在本地仓库上来验证是否配置成功:

        4.3 操作远程仓库

        1)本地仓库与已创建的远程仓库进行对接。

        命令:

        远程仓库名称默认是 origin,取决于远端服务器设置。

        仓库路径,从远端服务器获取此 URL 。

举个例子:

        本地仓库与远程仓库就建立了连接。

        2)查看远程仓库

        命令:

举个例子:

        3)将本地仓库推送远程仓库

        命令:

        如果远端分支名和本地分支名称相同,则可以只写本地分支:

        --set-upstream:推送到远端的同时并且建立和远端分支的关联关系

        如果当前分支已经和远端分支关联,则可以省略分支名和远端名:

        以上的方法,选择一种适合自己的即可。

举个例子:

        将本地仓库的资料推送到远程仓库:

        此时查看远程仓库:

        这就成功将本地仓库推送到远程仓库了。

        4)查看本地分支与远程分支关联关系

        命令:

举个例子:

        可以看到本地 master 与远程仓库的 master 是在同一个版本上。

        5)从远程仓库克隆到本地仓库

        如果已经有了一个远端仓库,我们可以直接 clone 到本地。

        命令:

        本地目录可以省略,会自动生成一个目录。

举个例子:

        打开文件,这就是从我们之前提交到远程仓库的文件,现在又从远程仓库克隆到另一个本地仓库中。

        6)从远程仓库中抓取和拉取

        远程分支和本地分支一样,也可以进行 merge 操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。

        - 抓取命令:

        抓取指令就是将仓库里的更新都抓到本地,不会进行合并。

        如果不指定远端名称和分支名,则抓取所有分支。

        - 拉取命令:

        拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于 fetch + merge 。

        如果不指定远端名称和分支名,则抓取所有并更新当前分支。

举个例子:

        现在有两个本地仓库,都是关联同一个远程仓库,版本相同。

        当前有一个仓库创建了一个 text04.txt 文件,并且提交本地,再推送到远程仓库:

        则另一个仓库就可以通过拉取获取 text04.txt 新增的文件:

        6)解决合并冲突

        在一段时间,A、B 用户修改了同一个文件,且修改了同一行位置的代码,此时发生合并冲突。

        A 用户在本地修改代码后优先推送到远程仓库,此时 B 用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库,此时 B 用户晚于 A 用户,则会推送失败。故需要先拉取远程仓库的提交,经过合并后才能推送到远端分支。

        5.0 使用 IEAD 中使用 Git

        可以有效地管理代码版本和团队协作。

        5.1 在 IDEA 中配置 Git

        安装好 IDEA 后,如果 Git 安装在默认路径下,那么 IDEA 会自动找到 git 位置,如果更改了 git 的安装位置则需要手动配置 git 的路径。对于比较新的 IDEA 版本,即使更改了 git 安装路径,IDEA 也能找到 git 的位置。

        选择 File -> Setings 打开设置窗口,找到 Version Control 下的 git 选项:

        5.2 在 IDEA 中操作 Git

        1)初始化本地仓库

        假设将当前项目交给 git 进行管理,先将当前项目初始化:

        点击 VCS

        选择需要管理的项目:

        初始化完毕之后,会出现 git 的工具:

        2)提交到本地仓库

        将项目提交到本地仓库中:

        选择需要进行管理的项目文件,再点击提交。

        3)推送到远程仓库

        将本地仓库推送到远程仓库:

        再选择远程仓库:

        远程仓库根据 URL 来确定,name 一般默认是 origin 。

        这就成功提交到远程仓库中了。

        查看远程仓库:

        5)克隆远程仓库到本地

        如果需要从远程仓库克隆文件到本地,点击 clone:

        选择需要克隆的远程仓库:

        也可以自动设置本地仓库的位置。

        6)分支

        通过 git 的控制台,可以对分支进行操作:

        查看分支:

        当前分支有本地分支 master 和远程分支 master 。

        创建本地分支:

        切换分支:

        通过点击不同的分支,来进行切换。

         合并分支:

        删除分支:

 

Read more

AI 编程工具选型:Copilot、Cursor、Codex 核心差异

AI 编程工具选型:Copilot、Cursor、Codex 核心差异

【如文章引起大家共鸣,请“点赞”以及“转发”,以支持继续创作,谢谢大家!】 朋友们大家好!今天咱们不聊那些虚头巴脑的,直接来点实在的——AI编程工具选型,Copilot、Cursor、Codex这仨到底咋选?别急,我这就用最接地气的方式,给你唠唠它们的“脾气秉性”,保证你听完就能上手挑! 先说Copilot,这哥们儿可是“代码补全界的扛把子”!它就像你身边的“代码小秘书”,你敲代码时,它就在旁边默默观察,你刚敲个“for”,它立马给你补上“(int i=0;i<n;i++)”,那叫一个快!而且,它还支持多IDE,VS Code、JetBrains啥的,都能无缝对接。不过呢,Copilot也有个“小毛病”,就是它更擅长“补全”,对于复杂的代码重构或者项目级理解,就有点力不从心了。

By Ne0inhk

Copilot代理与网络配置全攻略(突破访问限制的终极方法)

第一章:Copilot代理与网络配置全攻略(突破访问限制的终极方法) 在使用 GitHub Copilot 的过程中,开发者常因网络策略或区域限制无法正常激活服务。通过合理配置代理与网络环境,可有效绕过此类问题,确保代码补全功能稳定运行。 配置本地代理服务器 为确保 Copilot 能够连接至远程 API,建议在本地部署 HTTP 代理服务。以下是一个基于 Node.js 的简易代理示例: // proxy-server.js const http = require('http'); const net = require('net'); // 创建 HTTP 代理服务器 const server = http.createServer((req, res) => { // 允许跨域请求 res.setHeader(

By Ne0inhk

AI绘画报错

提示输出验证失败:CheckpointLoaderSimple: - 值不在列表中:ckpt_name: 'v1-5-pruned-emaonly-fp16.safetensors' 不在 ['anything-v5-PrtRE.safetensors'] 中 模型文件夹里面没模型 这是官方链接:v1-5-pruned-emaonly.safetensors https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main 点击同一行的小下载箭头。然后把文件放在:models/checkpoints文件夹里 你还需要标准的VAE文件,也就是:vae-ft-mse-840000-ema-pruned.safetensors https://huggingface.co/stabilityai/sd-vae-ft-mse-original/tree/main 这个文件放在:models/vae文件夹里 现在你已经拥有运行所需的一切了。慢慢来。你最初生成的图片会很糟糕。但是继续尝试,很快你就能得到很棒的结果。

By Ne0inhk

openMES开源制造执行系统完整指南:从零部署到生产监控全流程

openMES是一款基于ISA88和ISA95国际标准设计的开源制造执行系统,为中小企业提供数字化转型的完整解决方案。通过模块化架构和灵活配置,系统能够无缝对接离散制造与流程工业场景,实现生产过程透明化、智能化和高效化管理。 【免费下载链接】openMESA MES system designed based on ISA88&ISA95/一个参考ISA88&ISA95标准来设计的MES系统 项目地址: https://gitcode.com/gh_mirrors/op/openMES 🚀 openMES核心优势与价值解析 国际标准兼容性 openMES严格遵循ISA88(批量控制)和ISA95(企业与控制系统集成)标准,确保与ERP、SCADA等系统的互联互通。系统核心模块位于openmes-plugin-baseInformation,提供标准化的数据模型和接口定义。 模块化架构设计 系统采用高度模块化的设计理念,各功能模块独立部署、按需扩展: * 工厂建模:配置生产资源与工艺路线 * 生产计划:智能排程与任务分配 * 过程控制:实时监控生产状态 * 质量

By Ne0inhk