学习git后,真正在项目中如何使用?

news2024/7/6 20:46:22

文章目录

    • 前言
    • 下载和安装Git
    • 克隆远程仓库
    • PyCharm链接本地Git
    • 创建分支
    • 修改项目工程并提交到本地仓库
    • 推送到远程仓库
    • 小结

前言

网上学习git的教程,甚至还有很多可视化很好的git教程,入门git也不是什么难事。但我发现,当我真的要从网上克隆一个项目、修改并上传到远程仓库中时,我还是有些不知如何下手,即使我知道一些简单的git知识。因此,我在此记录下了一个简单的从下载、安装Git,到在本地和IDE修改项目,最后再同步到远程仓库的过程,以做学习和回顾之用。

Git的可视化学习:Learn Git Branching

Git简单教程:Git 教程 | 菜鸟教程 (runoob.com)

下载和安装Git

Git的下载和配置还是很简单和清晰的。

  • 首先在Git官网下载。 Git - Downloading Package (git-scm.com)
  • 安装我一路都是默认的,但是如果你对其中某些选项有要求,或者不清晰,可以查看这个博客:超级详细的GitBash使用教程01:下载、安装(适合小白)_git bash安装-CSDN博客,这个博客还是比较清晰地针对安装过程中每个选项都进行了注释;
  • 安装完成后,打开cmd,输入 git, 如果出现如下图所示就安装成功了。

cmd中git

克隆远程仓库

通过git克隆远程仓库的操作也有很多,我这里使用的是一种比较简单的。

  • 在资源管理器中打开到你想将克隆文件保存的文件夹;

  • 右击,选择 Open Git Bash here

  • 然后输入 git clone +仓库

我这里克隆的gitee上的一个项目,我之前进行克隆过了,就没有真正执行克隆。

克隆仓库举例

PyCharm链接本地Git

由于之前的项目使用PyCharm,因此我也继续沿用PyCharm。但可能你本地已经安装了 Git,但是 PyCharm 却提示没有 Git 工具,可能是因为 PyCharm 没有找到 Git 工具的路径或者没有正确设置 Git 工具路径。

你可以在 PyCharm 中进行如下操作来配置 Git 工具路径:

  1. 打开 PyCharm,在菜单栏中选择 File -> Settings(或者按下快捷键 Ctrl + Alt + S)打开设置页面。
  2. 在设置页面左侧的列表中找到 Version Control 选项,并展开此选项。
  3. 在展开的 Version Control 选项中,找到 Git 选项,并点击进入 Git 配置页面。
  4. 在 Git 配置页面中,可以看到 Git 工具的路径配置信息。确保路径设置正确,如果没有设置或者路径不正确,通过 Edit 按钮来设置正确的路径。
  5. 设置之后,还可以点击测试,如果成功会显示Git的版本。

创建分支

在从网上克隆仓库之后,由于这个仓库我是参与者(如果你不是参与者,也可以了解创建分支的过程),我可以对远程仓库进行创建分支、合并等操作。

因此,在我克隆仓库下来后,我希望现在就创建一个分支,以便之后上传到远程仓库。

创建分支并将head移动当前分支

  • 首先打开该项目所在的文件夹, 右击,点击Open Git Bash here

  • 执行 git branch branch1, 创建一个名为“branch1”的新分支;

  • 执行 git checkout branch1 或者 git switch branch1, 将head指向分支“branch1”;

    git 2.23版本中引入了新的命令来替代checkout, checkout作为单个命令承载了很多独立的功能。

  • 上面两步也可以合并为一步 git checkout -b branch 创建并指向分支“branch1”

创建并指向新分支

修改项目工程并提交到本地仓库

在进行修改完成之后,需要将工作区中修改的内容同步到本地仓库(我的以下截图与之前的截图不同属于一个仓库,只是为了说明Git的流程)

  1. 执行 git status 查看仓库当前的状态,显示有变更的文件。

  1. 执行git add .将所有有变更的文件添加到暂存区

  1. 执行 git commit 将所有新文件提交到本地仓库
git commit -m [message]  -m后面跟一些提交的备注信息,如果不写的话,会跳出一个界面让我们写备注信息

没有加-m

以上即为跳出的让我们写备注信息的界面

推送到远程仓库

  1. 如果你是已经链接了远程仓库,直接执行 git push origin master, 将本地的 master 分支推送到 origin 主机的 master 分支。

  1. 如果你是像前面一样,是创建了分支,则将master改成分支名字进行推送;

  2. 如果是没有链接到远程仓库,而只是本地仓库,则首先需要添加一个新的远程仓库。指定一个远程仓库的名称和 URL,将其添加到当前仓库中。

    git remote add origin [远程仓库url]
    

    这里由于我添加过远程仓库了就没有执行该行命令。

现在已经走完了主要Git的工作流程。

小结

本文主要简单介绍了Git操作从开始一个项目到推送到远程仓库中的一连串操作。在这个人人都知道版本管理的时候,往往像我这样的小白却不知如何开始使用,网上的操作往往很全面,但是在什么时候怎么做该怎么用,却不是连贯的介绍。因此希望本文能够给你带来一点Git学习方面的作用。

如果您觉得我写的不错,麻烦给我一个免费的赞!如果内容中有错误,也欢迎向我反馈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1297603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue:Vue的开发者工具不显示Vue实例中的data数据

一、情况描述 代码: 页面: 可以看到,input获取到了data数据,但是,vue-devtool没有获取到data数据 二、解决办法 解决办法1: data.name的值不能全是中文,比如改成aa尚硅谷 解决办法2&…

Windows下使用AndroidStudio及CMake编译Android可执行程序或静态库动态库

Windows下使用AndroidStudio及CMake编译Android可执行程序或静态库动态库 文章目录 Windows下使用AndroidStudio及CMake编译Android可执行程序或静态库动态库一、前言二、编译环境三、示例C/CPP程序1、总体工程结构2、示例代码3、CMakeLists.txt(重要)4、…

【外观模式】SpringBoot集成mail发送邮件

前言 发送邮件功能,借鉴 刚果商城,根据文档及项目代码实现。整理总结便有了此文,文章有不对的点,请联系博主指出,请多多点赞收藏,您的支持是我最大的动力~ 发送邮件功能主要借助 mail、freemarker以及rocke…

包装类, 泛型---java

目录 一. 包装类 1.1 基本数据类型和对应的包装类 1.2 装箱和拆箱 二. 泛型 2.1什么是泛型 2.2泛型的引入 2.3 泛型类语法 2.4 泛型类的使用 2.5 裸类型(Raw Type)(了解) 2.6 泛型是如何编译的 2.7 泛型的上界 2.8 泛型方法 一. 包装类 在 Java 中,由于基本…

爱智EdgerOS之深入解析AI图像引擎如何实现AI视觉开发

一、前言 AI 视觉是为了让计算机利用摄像机来替代人眼对目标进行识别,跟踪并进一步完成一些更加复杂的图像处理。这一领域的学术研究已经存在了很长时间,但直到 20 世纪 70 年代后期,当计算机的性能提高到足以处理图片这样大规模的数据时&am…

DSP处理器及其体系结构特点(您都用过哪些DSP?)

DSP处理器概述 数字信号处理器(Digital Signal Processor,DSP)是一种专门设计用于执行数字信号处理任务的微处理器类型。与通用微处理器(如CPU)相比,DSP处理器在处理数字信号时具有更高的性能和效率。 用途…

JAVA程序如何打jar和war问题解决

背景: 近期研究一个代码审计工具 需要jar包 jar太多了 可以将jar 打成war包 首先看下程序目录结构 pom.xml文件内容 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"ht…

数据库后门是什么?我们要如何预防它的危害

数据库后门是黑客在数据库中安装的一种特殊程序或代码&#xff0c;可以绕过正常的认证和授权机制&#xff0c;从而获取数据库的敏感信息或者控制整个数据库。黑客可以通过各种方式安装后门&#xff0c;比如利用漏洞、钓鱼、社会工程学等。 数据库后门的危害主要体现在以下几个方…

GPTs应用:创新无限,生态扩容

今天分享的GPTs系列深度研究报告&#xff1a;《GPTs应用&#xff1a;创新无限&#xff0c;生态扩容》。 &#xff08;报告出品方&#xff1a;华泰证券&#xff09; 报告共计&#xff1a;20页 GPTs 发展现状&#xff1a;从 AI 工具到开发平台&#xff0c;掀起全民开发浪潮 11…

YOLOv5独家原创改进:SPPF自研创新 | 可变形大核注意力(D-LKA Attention),大卷积核提升不同特征感受野的注意力机制

💡💡💡本文自研创新改进: 可变形大核注意力(D-LKA Attention)高效结合SPPF进行二次创新,大卷积核提升不同特征感受野的注意力机制。 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),适合p…

Docker三 | 数据卷

目录 Docker数据卷简介 添加数据卷的命令 容器数据卷的继承 Docker数据卷简介 Docker容器产生的数据&#xff0c;如果不备份&#xff0c;当容器实例删除后&#xff0c;容器中的数据也会消失&#xff0c;为了保存数据可以在Docker中使用数据卷。Docker数据卷是宿主机的一个可以…

【LeetCode】2703. 返回传递的参数的长度

返回传递的参数的长度 题目题解 题目 请你编写一个函数 argumentsLength&#xff0c;返回传递给该函数的参数数量。 示例 1&#xff1a; 输入&#xff1a;args [5] 输出&#xff1a;1 解释&#xff1a; argumentsLength(5); // 1只传递了一个值给函数&#xff0c;因此它应返…

搞懂内存函数

引言 本文介绍memcpy的使用和模拟实现、memmove的使用和模拟实现、memcmp使用、memset使用 ✨ 猪巴戒&#xff1a;个人主页✨ 所属专栏&#xff1a;《C语言进阶》 &#x1f388;跟着猪巴戒&#xff0c;一起学习C语言&#x1f388; 目录 引言 memcpy memcpy的使用 memcpy的…

PyTorch: 基于VGG16处理MNIST数据集的图像分类任务

引言 在本博客中&#xff0c;小编将向大家介绍如何使用VGG16处理MNIST数据集的图像分类任务。MNIST数据集是一个常用的手写数字分类数据集&#xff0c;包含60,000个训练样本和10,000个测试样本。我们将使用Python编程语言和PyTorch深度学习框架来实现这个任务。 在Conda虚拟环…

鸿蒙开发组件之Image

Image组件加载图片方式有三种&#xff1a; 1、网络地址加载 直接Image(xxxx),添加上图片的网络地址就可以了。注意&#xff1a;真机、模拟题调试需要申请"ohos.permission.INTERNET"权限 Image(https://xxxxxxx) 2、PixelMap格式加载像素图 Image(PixelMapObjec…

根据年份和第几周来获取,那一个周的周天日期

在工作中遇到这个问题&#xff0c;仓库有物料录入&#xff0c;告诉了年份和这个年的第几周&#xff0c;要求把时间转换为XXXX-XX-XX的格式。日期为那个周的最后一天&#xff08;周天&#xff09; 在Java中想要获取特定年份和周数的周天日期&#xff0c;可以使用LocalDate类 pu…

【SpringBoot】响应

controller方法中的return的结果&#xff0c;使用ResponseBody注解&#xff08;方法注解或类注解&#xff09;响应给服务器。 RestController Controller ResponseBody 类上有RestController注解或ResponseBody注解时&#xff1a;表示当前类下所有的方法返回值做为响应数据…

四招打造完美分层自动化测试框架,让测试更高效!

写在前面 我们刚开始做自动化测试&#xff0c;可能写的代码都是基于原生写的代码&#xff0c;看起来特别不美观&#xff0c;而且感觉特别生硬。 来看下面一段代码&#xff1a; 具体表现如下&#xff1a; driver对象在测试类中显示 定位元素的value值在测试类中显示 定位元素…

数据表排序

指针用的有点少了&#xff0c;有点不适应 用的冒泡排序 代码如下&#xff1a; #include<stdio.h> int num[100][100]; int * p[100], jud[100]; int judge(int i, int j, int rank); int m, n, k;int main(void) {scanf("%d%d%d", &m, &n, &k);f…

字符串函数strtok

1.调用格式&#xff1a; 2.调用形式&#xff1a;char*strtok(char*p1,const char*p2),其中第二个是由分隔符组成的字符串&#xff0c;第一个为需要分隔的字符串 3.调用目的&#xff1a;将分隔符之间的字符串取出 4.调用时一般将源字符串拷贝后调用&#xff0c;因为此函数会将…