VS中Git使用教程

2023-05-16

现在的VS都自带Git插件,用起来很方便,能将VsCode前端和VS后端一起提交,缺点:Word文档和Excel表没法协同处理冲突。

基本上的常用操作都已经涵盖在内了,能够满足日常开发所需。

自己用了一年时间,做些总结。

1、新建、克隆

新建项目、克隆项目个人还是习惯用原始的方式。

微软收购Github后,VS在git、GitHub上也做了很多优化。从新建远程代码仓库,到克隆、拉取、推送、管理分支,基本都能通过VS完成。

最基本的克隆等,建议直接参考微软官方文档

Visual Studio 中的 Git 体验 | Microsoft Learn

通过命令行克隆也可以,只要问价夹或者项目下有“.git”文件夹(隐藏文件夹),并有正常的git相关配置文件,VS都会识别到,git插件功能也能正常使用。

2、基础操作:拉取、提交、推送

2.1 功能在哪

VS顶部菜单中有【Git(G)】,里面是Git常用操作。

还有就是在【视图】菜单中打开【Git更改】和【Git存储库】

【Git更改】视图中主要用于处理 拉取、暂存、提交、推送、合并等操作。

【Git存储库】视图主要是查看以往提交、查看分支、操作分支等。

2.2 简单操作

【Git更改】窗口顶部的几个按钮,包括 提取、拉取、推送、同步...

提取:就是从远端仓库获取最新的代码,但是不应用,类似于“检查更新”

拉取:及“获取并应用更新”的意思。

推送:就是用本地更新云端仓库。

同步:就是先拉取,在推送。

当有文件修改后,【更改数】下面就会列出发生更改的文件。

文件名末尾会有“+”号。

点击“+”号,文件就会被收纳到【暂存更改】下。

点击“+”,就类似于通过命令行执行“git add”操作。

只有add了的修改才能被提交。

提交:

将要提交的文件点击“+”,编辑合适的提交信息,点击【提交临时数据/全部提交】按钮。即可提交。

提交只是在本地分支建立了版本号,可以理解为一种“本地存档”。

提交后VS会提示“已本地创建 提交 xxxx”

在【Git更改】能看到 传出和传入的个数

接下来就需要“推送”,点击【Git更改】d顶部的向上箭头按钮,即执行推送(push)。即向远程仓库同步。

3、暂存、存储

抛开“Visual Studio”不谈,暂存和存储说的是一回事,即“git stash ”。

但在VS中,可能是微软的蜜汁官翻的尴尬,不过也确实找不到合适的词语来描述。

在VS中,暂存是指“git add”,存储是指“git stash”。所以,就像前面提到的,改动文件点击“+”后,会归到【暂存更改】的节点下。然后才能提交和推送。

接着再来说说“存储”

在有文件改动后,点击提交按钮右边的箭头,在下拉菜单中能看到【全部存储(T)(--include-untracked)】和【全部存储并保持暂存(S)(--保留索引)】

要区分这两个选项到底什么意思,需要先了解下“git stash”。

git stash

可以参看下其他博客:

git stash详解

Git Stash命令的使用

简单的说,就是将当前更改保存起来,或者理解为打包藏起来。

git stash pop
git stash apply
上面两个都是将存储重新应用,不同的是“pop”是重新应用并丢弃存储。“apply”是重新应用的同时还保留存储。

VS中的存储:

【全部存储(T)(--include-untracked)】:就是字面意思,全部存储,无脑全存,傻瓜式,管你时暂存还是更改,文件时候ignore,是否track,全存。

后面括号中的(--include-untracked),就是包含非追踪文件,就是即使“.gitignore”中已经忽略的文件发生更改,也存。

存储结果就是你的【更改数】【暂存更改】节点下所有东西都被保存且不在显示。

【全部存储并保持暂存(S)(--保留索引)】:类似与全部存储,但“并保持暂存”是说,之前点过“+”,在【暂存更改】下的虽然会被存储,但不会被清理。方便你的下一步提交操作。所谓“--保留索引”是什么意思呢,索引就是当“git add”(点“+”)之后,这些更改就会生成版本号,或者叫索引,由一串字符表示。

存储后如何应用呢?

在【Git更改】窗口中的【存储】节点下,右击某一条存储,弹出的菜单中,【应用】就对应前面提到的“git stash apply”

【弹出】 就对应前面提到的“git stash pop”

【放下】就是丢弃删除某个存储的意思。

在【弹出】【应用】中的次级菜单中又有【应用/弹出并还原暂存】和【将所有项作为非暂存应用/弹出】结合前面存储时的“保留暂存”,应该很好区分,前置是吧原来是暂存的恢复为暂存,后者是一股脑全部撤销暂存都当多普通更改进行应用/弹出。

4、冲突及解决冲突

上面只是对一些基础操作的介绍,单人单终端开发基本不回有什么问题。但当多人协同开发,或者多设备开发时,就有可能发生冲突,即同一个文件在不同的本地上修改了。

什么时候会出现冲突?

应用/弹出一个暂存时,或者合并一个分支到另一个分支时。这些时候都可能出现冲突。

出现冲突的文件会出现在【未合并的更改】节点下。

双击每个未合并的文件项,就能进行处理冲突的合并了

右上角的设置可以调整视图,默认是上面这种上二下一的视图,上面的两个一边是“他们的”,一边是“我们的”(微软翻译一直可以的)

“我们的”就是本地的、当前分支现有的。

“他们的”就是从其他地方引入的,比如从存储中解除封印释放出来的。

两个版本的差异之处会被标记出来,行前会出现复选框,对比后勾选需要采用的一边,或者两边都需要采用,就都勾选。

底部的视图时合并后的结果,当所有的差异处都处理完毕后,可以点击左上角的【接受合并】即完成该冲突项的解决。

所以的冲突项解决后,即可继续合并或提交了。

4、分支的新建、删除、合并、变基

4.1 新建分支


新建分支一种是在github/gitlab上直接操作,创建好后再拉取新建的分支。

也可以在VS中完成。

在【Gir存储库】视图中,展开远端仓库分支列表,选择新分支的基础分支,即需要从那个分支创建新分支,

点击鼠标右键

在菜单中点击【新建本地分支位置】

接着,会弹出新建分支的对话框,需要输入新分支的名称。

其下方有两个复选框

【签出分支】:即现创建一个分支,并且自动切换到新创建的分支上。不勾选即不切换,还停留在原先的分支上。

【跟踪远程分支】:即指明新创建的分支是一个远程跟踪分支,何为“远程跟踪分支”,可以多百度一下,大概可以理解为这个分支允许直接操作远端仓库,和远端是实时同步的,提交就等同于推送。一般不勾选!

点击【创建】后即在本地创建了一个分支

切换到新创建的分支上(之前没有勾选“签出分支”的话就邮件选择“签出”)。

然后右键新创建的分支,选择【推送】,即将创建分支的动作同步推送到远端,远端仓库也会有相同的分支。

4.2 删除分支

删除分支很简单,前提是不能删除当前所处的分支,且需要先删除本地分支才能删除远端分支。

例如前面的步骤后,先切换到“master”分支,然后右键本地“dev”分支,就可以点击【删除】了,删除了本地的分支,就可以用相同方式删除远端分支。

4.3 合并分支

合并分支只能在本地分支上操作,然后推送到远端。

合并就是将一个分支上代码的修改合并到另一个分支上。

操作还是在【Gir存储库】视图中。逻辑是将其他分支合并到当前分支,选中要合并过来的分支,右键

4、其他:撤销、还原
有些操作可能还是需要通过指令来执行,在VS的终端里也可以执行git命令。

这里记录一些常用的:

查看本地分支列表:git branch
获取远端分支列表:git branch -r
更新远端分支列表:git remote update origin -p或者git remote prune origin
点击提交后想要撤回:git reset --soft HEAD~

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

VS中Git使用教程 的相关文章

随机推荐

  • tracealyzer的使用方法

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • arm汇编指令探究之 ldmia

    ldmia r0 r4 r11 r14 的意思是 LDMIA 中的 I 是 increase 的缩写 xff0c A 是 after 的缩写 xff0c LD加载 load 的意思 R0后面的感叹号 xff01 表示会自动调节 R0里面的指
  • arm汇编指令探究之STMFD和LDMIA指令的使用

  • 汇编输入输出(单个字符以及字符串)

    简单的汇编代码演示 简单的汇编代码演示 1输入输出 1 INT 16HROM BIOS中断1 INT 21HDOS中断 2字符串的输入 1 输入输出 输入输出主要有两个中断调用 xff0c 分别为INT 16H 和INT 21H 1 1 I
  • 关于海康摄像头OSD字幕叠加(.NET/C#/Formwork)

    刚接触摄像头代码的编写 xff0c 这里记录一下吧 xff01 记录一下我挨打的过程 xff01 xff01 在摄像头里面添加字符串 xff0c 困扰了很久 xff0c 资料也看了很多 xff0c 海康官网的文档看了也不是很懂 xff0c
  • 进程管理——进程实体

    一 进程的重要性 操作系统的基本功能是为了管理底层硬件资源 xff0c 在没有配置操作系统之前 xff0c 资源只属于当前运行的程序 这时的计算机只能运行一个程序 xff0c 并且是一个程序接着一个程序的运行 当计算机运行某一个程序时 xf
  • Effective C++读书笔记--Item 1:从四个语言层次理解C++

    可以将C 43 43 理解成由四个子语言组成 xff1a C Object Oriented C 43 43 Template C 43 43 STL C xff1a 代码块 语句 数组 指针 内置数据类型 预处理器 Object Orie
  • 设计师建筑师太难了,既要学BIM、无人机,还要学GIS!

    我 xff0c 一个平平无奇的城市规划专业 xff08 建筑专业 路桥专业 xff09 大学生 xff0c 还有一年要毕业 xff0c 很担心工作以后受到社会的毒打 xff0c 遂问导师和学长 xff0c 我要自学点什么技能和软件 xff1
  • 无人机航测是选择固定翼还是多旋翼?

    无人机测绘通过无人机低空摄影获取高清晰影像数据生成三维点云与模型 xff0c 实现地理信息的快速获取 效率高 xff0c 成本低 xff0c 数据准确 xff0c 操作灵活 xff0c 可以满足测绘行业的不同需求 大大地节省了测绘人员野外测
  • HAL库学习——串口中断

    一 介绍 串口的传输方式包括 xff1a 轮询 中断DMA xff0c 在此要介绍的是关于HAL库底层串口接收中断流程的讲解 xff0c 包括串口错误的处理 xff0c 中断回调函数以及错误中断回调函数的执行 二 配置流程 首先使用STM3
  • 嵌入式操作系统FreeRTOS的原理与实现

    URL http www eefocus com sensorwireless blog 08 03 144457 c9bd6 html 摘要 FreeRTOS是一个源码公开的免费的嵌入式实时操作系统 xff0c 通过研究其内核可以更好地理
  • 吃惊!难道Java也受美国出口管制?

    今天 xff0c 去翻看了一下Oracle Jdk的许可协议 xff0c 竟然是受美国出口管制 原文是这么说的 xff1a EXPORT REGULATIONS You agree that U S export control laws
  • 自己写出strcat函数

    通过指针和字符数组的结合写出strcat xff08 字符串拼接 源码如下 效果图 include lt stdio h gt include lt string h gt int main void char a 20 char b 20
  • 根据ttf文件 获取汉字点阵数据

    文件列表 untitled3 pro QT 61 gui CONFIG 43 61 c 43 43 11 console CONFIG 61 app bundle The following define makes your compil
  • nmap基本使用方法

    nmap基本使用方法 1 nmap简单扫描 nmap默认发送一个ARP的PING数据包 xff0c 来探测目标主机1 10000范围内所开放的所有端口 命令语法 xff1a nmap lt target ip address gt 其中 x
  • ROS学习之自定义msg类型

    1 创建msg文件 cd catkin ws src my package mkdir msg echo 34 string first name string last name uint8 age uint32 score 34 gt
  • 无人驾驶传感器之GPS和IMU

    GPS精度 xff1a GPS是由美国国防部牵头研制和维护的 xff0c 不可避免的牵扯到军事方面的因素 最早期因为害怕别的国家利用高精度的定位对美国进行打击 xff0c 他们甚至故意加大明勇定位的误差 xff0c 导致当时民用精度只能达到
  • 一步一步学CMake 之 VSCode+CMakeLists 调试 C++ 工程

    目录 1 插件推荐 2 文件准备 3 开始调试 一步一步学 CMake 系列文章 1 插件推荐 CMake CMake tools 2 文件准备 新建文件夹 xff1a TEST 新建文件 xff1a CMakeLists txt 内容如下
  • 记录下:ubuntu14.04安装xinetd服务

    1 先查看电脑是否已经安装xinetd sudo etc init d xinetd status 执行如上命令如果没有提示未知服务的话 xff0c 说明已经安装 2 更新apt get 资源列表 sudo apt get update 3
  • VS中Git使用教程

    现在的VS都自带Git插件 xff0c 用起来很方便 xff0c 能将VsCode前端和VS后端一起提交 xff0c 缺点 xff1a Word文档和Excel表没法协同处理冲突 基本上的常用操作都已经涵盖在内了 xff0c 能够满足日常开