git配置与常用命令

2023-11-15

git配置与常用命令

git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

gitbash是一个适用于Windows环境的应用程序,它为Git命令行体验提供了一个仿真层;相当于在window上通过git bash这个模拟的Unix命令行的终端做git相关的版本控制。

gitbash下载地址:https://git-scm.com/download/

选择对应的系统与位数,下载完成后一路默认选择安装即可。

1、gitbash安装成功后,打开gitbash主程序,打开之后,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4FXbHvO3-1669270934897)(https://note.youdao.com/yws/res/e/WEBRESOURCEdee2232113e7eb2d770139dc5c28723e)]

2、首先在本地电脑上创建一对公钥私钥,输入命令ssh-keygen.exe,一直按回车即可。

在这里插入图片描述

按照下图所示,出现以下信息代表公钥私钥创建成功。

在这里插入图片描述

3、将公钥上传至git服务器

打开浏览器,输入gitlab仓库地址,然后登录,点击左下角【用户名】–【Profile Settings】–【SSH Keys】
在这里插入图片描述
在这里插入图片描述

点击【Add SSH Key】,进入添加公钥页面

在这里插入图片描述

进入本地电脑的C:\Users\Administrator\.ssh目录下,右键点击id_rsa.pub,选择打开方式,选择记事本,Ctrl + A 然后 Ctrl + C 复制文件全部内容。

在这里插入图片描述

在这里插入图片描述

粘贴到添加公钥页面。

在这里插入图片描述

点击下方【Add key】按钮,公钥添加成功!

4、创建工作目录,克隆项目代码

打开gitbash命令行,在用户主目录下创建工作目录workspace。

cd ~
mkdir workspace

在这里插入图片描述

进入到workspace目录下

cd workspace

克隆项目代码

git clone 项目仓库地址

在这里插入图片描述

克隆过程中会提示输入gitlab的用户名和密码,输入完成后等待项目克隆完成!

进入到项目目录中

cd KiwiKiss

在这里插入图片描述

5、git常用命令总结
1)如何创建/删除分支?
git branch test-branch-0601  # 创建分支test-branch1
git checkout test-branch-0601  # 切换分支到test-branch1

在这里插入图片描述

git checkout -b test-branch2  # 新建并且切换分支

在这里插入图片描述

git branch -D 本地分支名称  # 删除本地分支

在这里插入图片描述

2)如何查看当前分支修改了哪些文件?
git status  # 查看当前分支修改的文件

在这里插入图片描述

3)如何查看当前分支修改的内容?
git diff  # 查询当前分支代码与远程代码仓库的区别

在这里插入图片描述

4)如何提交修改?
git add .  # 添加所有文件到暂存区
git commit -m '提交的文字描述'  # 从暂存区提交
git push origin test-branch1  # 推送到远程仓库

在这里插入图片描述

5)如何进行回滚?
git log  # 查看提交记录(找到要回滚的版本号)

在这里插入图片描述

git reset --hard '版本号'  # 执行回滚操作

在这里插入图片描述

6)如何放弃修改?
git checkout .  # 撤销所有修改
git checkout tcms/handlers.py  # 撤销单个文件修改

在这里插入图片描述

7)如何合并分支?
git merge test-branch1  # 将test-branch1分支合并到当前分支

在这里插入图片描述

6、冲突与解决

分支冲突的场景主要有以下两个方面:
1)多个分支代码合并到一个分支时;
2)多个分支向同一个远端分支推送代码时;

git的合并中产生冲突的具体情况:
1)两个分支中修改了同一个文件(不管什么地方)
2)两个分支中修改了同一个文件的名称
两个分支中分别修改了不同文件中的部分,不会产生冲突,可以直接将两部分合并。

冲突解决办法:在本地当前分支上,修改冲突代码—>add—>commit—>push

示例:
分支一:test-branch1
分支二:test-branch2

两个分支对同一个文件的同一行进行了修改

test-branch1分支中handlers.py文件最后的注释为:这里是分支1的注释
test-branch2分支中handlers.py文件最后的注释为:分支2的注释

将test-branch2合并到test-branch1时,文件handlers.py出现冲突:
在这里插入图片描述

此时,文件中出现两个分支的修改对比(HEAD到一排等于号之间的内容为当前分支修改的内容,一一排等于号到test-branch2之间的内容代表test-branch2分支上修改的内容):
在这里插入图片描述

将不要的内容删除,留下有效内容:
在这里插入图片描述

提交分支:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git配置与常用命令 的相关文章

随机推荐

  • LLVM系列第十章:控制流语句if-else-phi

    系列文章目录 LLVM系列第一章 编译LLVM源码 LLVM系列第二章 模块Module LLVM系列第三章 函数Function LLVM系列第四章 逻辑代码块Block LLVM系列第五章 全局变量Global Variable LLV
  • jsp&servlet&jdbc&mysql实现简单的增删查改(一)

    1 关于JDBC JDBC Java DataBase Connectivity 是一种用于执行SQL语句的Java API 是Java和数据库之间的一个桥梁 它由一组用Java语言编写的类和接口组成 各种不同类型的数据库都有相应的实现类
  • MathCAD14破解版

    MathCAD14 是美国的PTC公司研发推广的一款老牌的工程计算软件 也可以说是一种交互式数值计算系统 只要输入一个数学公式或者方程组或者矩阵都可以通过该软件直接得出结果 它拥有五个扩展库 求解与优化 数据分析 信号处理 图像处理 和小波
  • 如何写好一份软件开发设计文档

    设计文档 也被称作技术规范和实现手册 描述了你如何去解决一个问题 是确保正确完成工作最有用的工具 其目的是迫使你对设计展开缜密的思考 并收集他人的反馈 进而完善你的想法 同时在软件交付和交接的过程中 能让其他人更通俗易懂的了解之前的设计目的
  • 【Python小技巧】.py .pyd .pyw 都是干什么用文件?想分发时加密py脚本文件?

    文章目录 前言 一 什么是 py 文件 二 什么是 pyd 文件 pyd 文件是用 Python 编程语言编写的 是通过编译 Python 代码生成的 py 和 pyd 文件格式之间的区别 如何创建 pyd 文件 如何使用 pyd文件 三
  • Android USB电源管理

    The USB peripheral detects the lack of 3 consecutive SOF packets as a suspend request from the USB host 1 驱动shutdown顺序 系
  • 黑盒测试方法:边界值分析具体步骤及实例

    边界值分析法也是黑盒测试方法之一 强调测试边界条件 而非等量类划分 其过程是确定输入值的最大值和最小值 然后将测试点置于这些极端值以及它们之间 使用边界值分析法可以揭示程序在处于边界条件时的bug 并能够更有效地完成测试工作 以下是该方法的
  • TypeError: defineConfig is not a function

    场景 当我们在做打包配置的时候 出现如下错误 原因 由于用vue cli直接创建了vue 3的项目 而里面的生态并非都是最新版 vue config js中的代码如下 使用了vue 3的语法 解决 输入 vue upgrade 一路向下 即
  • vue+typescript封装axios,实现取消重复请求

    vue cli3可以直接生成vue typescript项目 然后对axios进行封装 实现拦截多次重复请求 并取消 直接撸代码 也是借鉴网上的 做了修改 在根目录下新建axios tool ts文件 import Vue from vue
  • Matlab_输出成绩等级A、B、C、D、E

    输入一个百分制成绩 要求输出成绩等级A B C D E 其中90 100为A 80 89为B 70 79为C 60 69为D 60以下为E 以下会分别使用if语句和switch语句实现 1 if语句实现如下 c input 请输入成绩 if
  • Timestamp : Unable to compare with value [Binary]kettle插入到Oracle报错

    kettle插入更新到Oracle报错 Timestamp Unable to compare with value Binary Binary can t be converted to a timestamp 如图 原因 一般是前一步如
  • 设计模式(现在只总结了常用的8种)

    一 设计模式的七大原则 1 设计模式的目的 编写软件过程中 程序员面临着来自耦合性 内聚性以及可维护性 可扩展性 重用性 灵活性 等多方面的 挑战 设计模式是为了让程序 软件 具有更好 代码复用性 相同功能的代码只需要写一次 可读性 代码简
  • 指针到底能不能修改其指向的常量字符串?

    http m blog csdn net article details id 11248789 1 指针到底能不能修改其指向的常量字符串 今天做一个字符串右移函数时 直接使用指针来修改字符串常量的值出现了奇怪运行时错误 代码如下 incl
  • openGauss学习笔记-56 openGauss 高级特性-DCF

    文章目录 openGauss学习笔记 56 openGauss 高级特性 DCF 56 1 架构介绍 56 2 功能介绍 56 3 使用示例 openGauss学习笔记 56 openGauss 高级特性 DCF DCF全称是Distrib
  • snipaste——一款强大的、免费的截图软件

    说到截图软件 大家首相想到的恐怕就是QQ 甚至有人戏称steam在中国是 吃鸡启动器 QQ在很多人眼中就是一款截图软件 诚然 日常使用QQ截个图没什么问题 但是和snipaste比起来确实小巫见大巫 加之很多朋友并不喜欢打开电脑就启动QQ
  • HashMap源码分析

    HashMap源码分析 HashMap是Java集合框架中常用的数据结构之一 它提供了一种用于存储键值对的哈希表实现 在本文中 我们将深入源码 详细分析HashMap的实现原理和关键方法 HashMap的基本结构是一个数组和一组链表 或红黑
  • Spring Boot参考指南——Starter POMs

    13 2 Gradle Gradle用户可以直接在它们的dependencies节点处导入 starter POMs 跟Maven不同的是 这里没有用于导入共享配置的 超父 super parent apply plugin java re
  • unity 毛笔字笔触(画图)

    毛笔字笔触 RawImage using System Collections Generic using UnityEngine using UnityEngine UI using Random UnityEngine Random p
  • redis相关

    如果redis没有设置expire 他是否默认永不过期 清理线上Redis没有设置过期时间的key 青苔小榭的博客 CSDN博客 如何给Redis中未设置过期时间key添加过期时间 知乎 Redis中的几种更新策略 如何实现redis数据的
  • git配置与常用命令

    git配置与常用命令 git是一个开源的分布式版本控制系统 可以有效 高速地处理从很小到非常大的项目版本管理 gitbash是一个适用于Windows环境的应用程序 它为Git命令行体验提供了一个仿真层 相当于在window上通过git b