Git的安装及基础命令

news2024/11/30 12:31:10

一. 安装Git

  1. 首先请前往Git官网去下载最新的安装包:https://git-scm.com/download/win
    在这里插入图片描述

  2. 运行下载好的 .exe 文件,一路next即可。 右击桌面出现以下两个就算是成功。
    在这里插入图片描述

  3. 安装完成后,需要设定用户名和邮箱来区分不同的用户。右击屏幕,选择“Git Bash Here”,输入以下命令。

    git config --global user.name "shan"
    git config --global user.email "shan@qq.com"
    

    在这里插入图片描述

  4. 查看配置信息

    git config --list
    

    在这里插入图片描述

二、 基础命令

  1. 创建本地仓库
    我们可以将任意一个文件夹作为一个本地仓库,输入:

    git init
    

    输入后,会自动生成一个.git目录,注意这个目录是一个隐藏目录,而当前目录就是我们的工作目录。
    在这里插入图片描述

    创建成功后,我们可以查看一下当前的一个状态,输入:

    git status
    

    如果已经成功配置为Git本地仓库,那么输入后可以看到:
    在这里插入图片描述
    这表示我们还没有向仓库中提交任何内容,也就是一个空的状态。

  2. 添加和提交

    我们创建一个文本文档 hello.txt,随便写入一点内容 “Hello World”,接着输入:

    git status
    

    我们会得到如下提示:
    在这里插入图片描述
    其中Untracked files是未追踪文件的意思,也就是说,如果一个文件处于未追踪状态,那么git不会记录它的变化,始终将其当做一个新创建的文件
    这里我们将其添加到暂存区,那么它会自动变为被追踪状态:

    git add hello.txt #也可以 add . 一次性添加目录下所有的
    

    再次查看当前状态:
    在这里插入图片描述
    现在文件名称的颜色变成了绿色,并且是处于Changes to be committed下面,因此,我们的hello.txt现在已经被添加到暂存区了。

    将其提交到Git本地仓库中,注意需要输入提交的描述以便后续查看,比如你这次提交修改了或是新增了哪些内容:

    git commit -m 'Initial Hello'
    

    在这里插入图片描述

    接着我们可以查看我们的提交记录:

    git log             #将详细信息显示,会按提交时间列出所有的更新,最近的更新排在最上面。
    git log --oneline   #将信息简化,一行显示
    git log --graph     #显示ASCII 图形表示的分支合并历史。
    

    我们还可以查看最近一次变更的详细内容:

    git show [也可以加上commit ID查看指定的提交记录]
    

    在这里插入图片描述

    再次查看当前状态,已经是清空状态了:
    在这里插入图片描述

    接着修改一下我们的文本文档,由于当前文件已经是被追踪状态,那么git会去跟踪它的变化,如果说文件发生了修改,那么我们再次查看状态会得到下面的结果:
    在这里插入图片描述
    也就是说现在此文件是处于已修改状态,我们如果修改好了,就可以提交我们的新版本到本地仓库中:

    git add hello.txt
    git commit -m 'Modify Hello'
    

    接着我们来查询一下提交记录,可以看到一共有两次提交记录。
    在这里插入图片描述

    我们可以创建一个.gitignore文件来确定一个文件忽略列表,如果忽略列表中的文件存在且不是被追踪状态,那么git不会对其进行任何检查:

    # 这样就会匹配所有以txt结尾的文件
    *.txt
    # 虽然上面排除了所有txt结尾的文件,但是这个不排除
    !666.txt
    # 也可以直接指定一个文件夹,文件夹下的所有文件将全部忽略
    test/
    # 目录中所有以txt结尾的文件,但不包括子目录
    xxx/*.txt
    # 目录中所有以txt结尾的文件,包括子目录
    xxx/**/*.txt
    
  3. 回滚

    当我们想要回退到过去的版本时,就可以执行回滚操作,执行后,可以将工作空间的内容恢复到指定提交的状态:

    git reset --hard e1fc3e5
    

    执行后,会直接重置为那个时候的状态。再次查看提交日志,我们发现之后的日志全部消失了。
    在这里插入图片描述

    要是现在我又想回去,我们可以通过查看

    git reflog
    

    在这里插入图片描述
    这样就能找到之前的commitID,再次重置即可。
    在这里插入图片描述

三、 分支

分支就像我们树上的一个树枝一样,它们可能一开始的时候是同一根树枝,但是长着长着就开始分道扬镳了,这就是分支。我们的代码也是这样,可能一开始写基础功能的时候使用的是单个分支,但是某一天我们希望基于这些基础的功能,把我们的项目做成两个不同方向的项目,比如一个方向做Web网站,另一个方向做游戏服务端。

因此,我们可以在一个主干上分出N个分支,分别对多个分支的代码进行维护。

  1. 创建分支

    以下命令来查看当前仓库中存在的分支:

    git branch
    

    默认情况下是有一个master分支的,并且我们使用的也是master分支,一般情况下master分支都是正式版本的更新,而其他分支一般是开发中才频繁更新的。
    基于当前分支创建一个新的分支:

    git branch test
    # 对应的删除分支是
    git branch -d yyds
    

    在这里插入图片描述

    修改一下文件,提交,再查看一下提交日志:

    git commit -a -m 'branch master commit'
    

    在这里插入图片描述
    通过添加-a来自动将未放入暂存区的已修改文件放入暂存区并执行提交操作。查看日志,我们发现现在我们的提交只生效于master分支,而新创建的分支并没有发生修改。

    将分支切换到另一个分支:

    git checkout test
    

    我们会发现,文件变成了此分支创建的时的状态,也就是说,在不同分支下我们的文件内容是相互隔离的。
    在这里插入图片描述
    现在再来提交一次变更,会发现它只生效在test分支上。我们可以看看当前的分支状态:

    git log --all --graph
    

    在这里插入图片描述

  2. 合并分支

    我们也可以将两个分支更新的内容最终合并到同一个分支上,我们先切换回主分支:

    git checkout master
    

    接着使用分支合并命令:

    git merge test
    

    会得到如下提示:
    在这里插入图片描述
    在合并过程中产生了冲突,因为两个分支都对hello.txt文件进行了修改,那么现在要合并在一起,到底保留谁的hello文件呢?

    我们可以查看一下是哪里发生了冲突:

    git diff
    

    在这里插入图片描述
    因此,现在我们将master分支的版本回退到修改hello.txt之前或是直接修改为最新版本的内容,这样就不会有冲突了,接着再执行一次合并操作,现在两个分支成功合并为同一个分支。
    在这里插入图片描述

  3. 变基分支

    除了直接合并分支以外,我们还可以进行变基操作,它跟合并不同,合并是分支回到主干的过程,而变基是直接修改分支开始的位置,比如我们希望将test变基到master上,那么test会将分支起点移动到master最后一次提交位置:

    git rebase master
    

    变基后,test分支相当于同步了此前master分支的全部提交。

优选

我们还可以选择其将他分支上的提交作用于当前分支上,这种操作称为cherrypick:

git cherry-pick <commit id>:单独合并一个提交

这里我们在master分支上创建一个新的文件new.txt,提交此次更新,接着通过cherry-pick的方式将此次更新作用于test分支上。
在这里插入图片描述

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

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

相关文章

​Lambda表达式详解​-初遇者-很细

目录 Lambda简介 对接口的要求 Lambda 基础语法 Lambda 语法简化 Lambda 表达式常用示例 lambda 表达式引用方法 构造方法的引用 lambda 表达式创建线程 遍历集合 删除集合中的某个元素 集合内元素的排序 Lambda 表达式中的闭包问题 Lambda简介 Lambda 表达式是 JD…

骑行,为日益冷漠的人际关系加点温度

随着社会的发展和人们生活水平的提高&#xff0c;越来越多的年轻人、老年人和中年人开始关注健康和运动。而骑行作为一种健康、环保、经济实惠的运动方式&#xff0c;受到越来越多人的喜爱。本文将从社会面探讨这些话题对于不同人群的影响。 首先&#xff0c;骑行对身体有着多方…

狂飙,从功能测试转到自动化测试,我的测试之路涨了20k...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

《四》Git 中的远程仓库

SSH 登录&#xff1a; 每个远程仓库都有两种地址&#xff1a;HTTPS 和 SSH。如果是 HTTPS 的地址&#xff0c;每次 push 的时候都要输入用户名和密码以校验身份。如果 SSH 的方式&#xff0c;就不再需要每次都输入用户名和密码了。 cd ~ 进入用户的家目录&#xff0c;执行 ss…

ChatGPT在智能外呼机器人领域的应用

随着人工智能技术的不断发展&#xff0c;自然语言处理(NLP)技术也逐渐成为各行各业的热门技术。其中&#xff0c;ChatGPT技术是近年来备受关注的技术之一。ChatGPT技术是一种基于自然语言处理和深度学习的人工智能技术&#xff0c;它可以处理自然语言文本&#xff0c;实现自动化…

Maven 概述及下载安装

一、为什么要学习 Maven 我们构建一个项目需要用到很多第三方的类库&#xff0c;就需要引入大量的jar包&#xff0c;并且Jar包之间的关系错综复杂&#xff0c;缺少任何一个Jar包都会导致项目编译失败。Maven 能帮助我们下载及管理依赖。 本地项目代码开发完成后&#xff0c;我…

如何在华为OD机试中获得满分?Java实现【字母组合】一文详解

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

Android:如何从源码编译OpenCV4Android库

原文摘自知乎网友稚晖的文章《如何从源码编译OpenCV4Android库》 https://blog.csdn.net/LateLinux/article/details/111149544 我在这里根据自己的经验&#xff0c;增加一些备注。 1.需要的工具和源码&#xff1a; opencv4.1&#xff08;opencv4.6也可以编译通过&#xff09…

跟随林曦,做自己的“生活家”

时代在以加速度的方式变化&#xff0c;让人难以从容。而当我们陷于横向的比较系统&#xff0c;权衡着卷、躺时&#xff0c;也有人在探寻另一条纵向的路——向古人学习&#xff0c;以传统美学关照和滋养当下生活。      立夏之际&#xff0c;水墨画家林曦的新作《无用之美》…

数据结构【链表】看完还怕拿不下链表?

✨Blog&#xff1a;&#x1f970;不会敲代码的小张:)&#x1f970; &#x1f251;推荐专栏&#xff1a;C语言&#x1f92a;、Cpp&#x1f636;‍&#x1f32b;️、数据结构初阶&#x1f480; &#x1f4bd;座右铭&#xff1a;“記住&#xff0c;每一天都是一個新的開始&#x1…

推荐5款提高生活和工作效率的好帮手

在这个数字化时代,软件工具已经深深地影响和改变了我们的生活和工作。有着各种各样的软件工具,它们都可以在特定的领域内让我们变得更加高效,完成复杂的任务。选择一款适合你的软件工具,不但可以极大地释放生产力,也可以让生活变得更加便捷。 1.桌面图标管理工具——TileIconi…

阿里开源!集成了 AIGC 的免费数据库工具:Chat2DB

今天推荐的这个项目是「Chat2DB」&#xff0c;一款开源免费的数据库客户端工具&#xff0c;支持 Windows、Mac 本地安装&#xff0c;也支持服务器端部署&#xff0c;Web 网页访问。 和传统的数据库客户端软件 Navicat、DBeaver 相比 Chat2DB 集成了 AIGC 的能力&#xff0c;能…

基于LLMs的多模态大模型(PALM-E,ArtGPT-4,VPGTrans )

这个系列已经更文一些了&#xff0c;如果有新的文章会继续补充&#xff1a; 基于LLMs的多模态大模型&#xff08;Visual ChatGPT&#xff0c;PICa&#xff0c;MM-REACT&#xff0c;MAGIC&#xff09;基于LLMs的多模态大模型&#xff08;Flamingo, BLIP-2&#xff0c;KOSMOS-1&…

2023年DAMA-CDGA/CDGP认证合肥/厦门/长春/深圳可以报名

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

【MySQL】实验十 E-R图

文章目录 1. 学校2. 院系3. 图书馆4. 舰队5. 工厂6. 网购7. 公司1. 学校 设有如下实体: 班主任:工号、姓名、电话 班级:班号、专业、毕业总学分 学生:学号、姓名、性别、年龄 课程:课程号、课程名 上述实体中存在如下联系: (1)一个班主任管理一个班级,一个班级由一个…

小兔鲜--项目总结 2

目录 登录-表单校验实现 表单如何进行校验 表单校验步骤 自定义校验规则 整个表单的内容验证 登录-基础登录业务实现 登录业务流程 Pinia管理用户数据 如何使用Pinia管理数据 关键代码总结 登录-Pinia用户数据持久化 持久化用户数据说明 ​编辑关键步骤总结和插件运行机…

基于 JMeter 实现 WEB 项目性能测试,环境搭建与测试用例编写

目录 前言&#xff1a; 一、JDK 安装 二、Tomcat 安装 三、Redis 安装 四、数据库安装 五、WEB 项目搭建 六、性能测试项目搭建 七、总结 前言&#xff1a; 性能测试是软件开发中必不可少的一环&#xff0c;它可以帮助开发者提高程序的稳定性&#xff0c;优化性能&…

【产品经理】产品体验报告的思路

&#xff08;一&#xff09;产品概述 &#xff08;1&#xff09;体验环境 对于app来说&#xff0c;无非就是体验产品所用的机型&#xff0c;系统&#xff0c;然后app版本&#xff0c;体验时间&#xff0c;体验人等方面的信息。 &#xff08;2&#xff09;产品的概括或简介说…

基于LLMs的多模态大模型(Visual ChatGPT,PICa,MM-REACT,MAGIC)

当LLMs已经拥有了极强的对话能力后&#xff0c;如何使其拥有视觉和语音等多模态能力是紧接而来的热点&#xff08;虽然GPT4已经有了&#xff09;&#xff0c;这个系列将不定期更新一些利用LLMs做多模态任务的文章。 直觉上&#xff0c;如果直接训练一个类似chatgpt架构的多模态…

7种PCB走线方式

01电源布局布线相关 数字电路很多时候需要的电流是不连续的&#xff0c;所以对一些高速器件就会产生浪涌电流。 如果电源走线很长&#xff0c;则由于浪涌电流的存在进而会导致高频噪声&#xff0c;而此高频噪声会引入到其他信号中去。 而在高速电路中必然会存在寄生电感和寄…