vs中使用git

康哥走荭 康哥走荭     2022-08-18     260

关键词:

vs中使用git

一、概念

Git是一个强调速度的分布式版本控制软件和源代码管理系统(SCMsource code management)。Git最初是由Linus Torvalds为内核开发而设计的管理软件。自从Git推出以来,已经被很多开源项目所采纳。每一个Git工作目录是一个带有完全历史记录和版本信息的仓库,不依赖于网络和中央服务器。

Github

GitHub是一个平台,一个网站,提供给用户创建git仓储空间,保存(托管)用户的一些数据文档或者代码等。概括来说,Github只是一个提供存储空间的服务器,用来存储git仓库类似的网站还有很多,比如码云等等

 

二、为什么要用Git

  • 更顺畅的工作流程,开发过程中,完全可以离线操作
  • 快速,Git分布式架构使得本地仓库包含所有的历史版本信息,你可以在不同的版本之间快速切换
  • 弹性的本地分支,在svn下,你建一个分支需要把源代码复制到另外一个文件夹,而在Git下,创建分支的代价是非常小的,只需一条命令
  • 仓库目录结构简洁,用Git复制一个项目,只会在项目根目录创建一个.git的目录,而其他目录很干净
  • 内容按元数据方式存储,所有的版本信息都位于.git目录下
  • 完整性好,更易于协作开发
  • 用户群大,现在已经有成千上万个开源项目采用Git来做项目管理,github上更是有无数个代码仓库

三、gitsvn的区别

git是分布式版本控制系统拥有两个仓库,一个是本地仓库,一个是远程仓库。代码提交是提交到本地的(如此速度就快),当然生成补丁(patch)然后推送(push)到远程服务器上是需要联网的SVN是集中式版本控制系统,只有一个远程仓储,代码提交都是提交到远程服务器上,是需要一直联网的(如此速度就慢)

SVN这样的集中式版本控制系统,它的完整代码仓库(代码仓库不仅仅只包含了代码,还包含各个历史版本的信息等)在中心服务器上,一旦这个中心服务器挂了,也就是完整的代码仓库挂了,虽然你本地可能之前有从中心服务器上取得过代码,但是那些历史版本信息都没有了,而且你也无法再提交代码。

git不同,git没有中心服务器的概念,每一个git客户端(git节点)都含有一个完整的代码仓库(前提是你之前从远程git仓库fetch过代码),所以那些历史版本信息都在你本机上,假如哪一个git节点挂掉了,随意从其他git节点clone一个代码仓库过来就ok了, 那些原来的代码、版本信息之类的都还是完整的(当然如果你在这个挂掉的git节点上新增的代码是没有掉了的)。

综上,git的每一个节点(第一次从远程git仓库取得代码后,该git节点就是一个完整的代码仓库)相当于SVN的中心服务器,都包含完整的代码仓库

 

四、vs中使用git

vs中已经帮我们安装了git,我们只需要在“项目”--“团队资源管理器”中打开即可使用

 

git的一些常用术语:

克隆(clone):从远程服务器上克隆完整的git仓库(包括代码和版本信息)到自己的机器上

提交:将自己修改的代码提交到本地的仓库

拉取(同步):从远程仓库拉取新的代码到本地仓库(拉取的时候必须先进行提交)

推送(push):将修改的代码推送到远程仓库

冲突:冲突产生是因为git无法将修改的内容进行自动合并时就会产生冲突,这时就需要我们手动进行合并冲突

 

 

流程:

首先在服务器上(github,码云)上新建项目,vs中进行克隆之后,会在本地指定的文件夹中生成.git的隐藏文件,Git用来进行版本控制和内容跟踪的所有文件都在该文件夹下。我们只需要将代码放到包含.git的文件夹下提交并推送即可,这样就推送到了远程仓库。修改代码之后也是进行提交推送即可。如果远程仓库有新的更新,我们只需要拉取。

 

注意

git中文件有三种状态:已修改,已暂存,已提交

已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。

 

 

 

理解分支
分支(branch)有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作

 

分支内部原理

 

1、如下图所示,版本的每一次提交(commit),git都将它们根据提交的时间点串联成一条线。刚开始是只有一条时间线,即master分支,HEAD指向的是当前分支的当前版本。

 

 

2、当创建了新分支,比如dev分支git新建一个指针devdev=masterdev指向master指向的版本,然后切换到dev分支 ,把HEAD指针指向dev,如下图。

 

3.在dev分支上编码开发时,都是在dev上进行指针移动,比如在dev分支上commit一次,dev指针往前移动一步,但是master指针没有变,如下:

 

4、当我们完成了dev分支上的工作,要进行分支合并,把dev分支的内容合并到master分支上。其内部的原理,其实就是先把HEAD指针指向master,再把master指针指向现在的dev指针指向的内容。如下图。

5、当合并分支的时候出现冲突(confict),比如在dev分支上commit了一个文件file1,同时在master分支上也提交了该文件file1,修改的地方不同(比如都修改了同一个语句),那么合并的时候就有可能出现冲突,如下图所示

这时候执行,git会默认执行合并,但是要手动解决下冲突并提交,现在git分支的结构如下图

参考文档:

http://blog.csdn.net/chenj_freedom/article/details/50543152

http://blog.csdn.net/wengpingbo/article/details/8985132

http://www.nowamagic.net/academy/detail/48160210

vs.net2013中使用git建立源代码管理版本管理

第一次在VS2013中使用Git,也是第一次使用Git,各种不熟悉。百度各种使用经验,大都不屑于使用VS2013集成的Git,建议下载这个下载那个,我也照学了,确实能实现项目的提交、同步、合并的工作,但都不能与VS2013实现无缝配合,... 查看详情

如何在 VS-code 中使用 Git 工作树?

】如何在VS-code中使用Git工作树?【英文标题】:HowtoworkwithGitworktreeinVS-code?【发布时间】:2022-01-1508:44:39【问题描述】:有些事情我很难理解:如何在VS-code中使用git工作树?我显然无法让它工作。我尝试过使用命令行...但是当我... 查看详情

在vs2010中使用git管理源代码

前文我们讲了使用TortoiseGit管理源代码,但是对于使用VS2010的朋友来说,源代码管理起来还是不怎么方便。要是直接在VS2010中能使用Git就好了,下面我们就来看看怎么在VS2010中使用Git的功能。      主要是分... 查看详情

vs2017没有git顶栏

参考技术A您可以在VisualStudio2017中使用Git,但它并不像VisualStudio2015那样拥有Git顶栏。您可以使用VisualStudio2017中的Git菜单来管理您的Git仓库。您可以查看Git菜单中的每个选项,以了解它们是如何帮助您管理您的Git仓库的。此外,... 查看详情

vs中git概念解析与深度使用

参考资料:https://blog.csdn.net/qq_36383623/article/details/103090793https://blog.gitee.com/2020/06/17/code-conflict/https://blog.gitee.com/2019/04/25/gitee-branch/https://www.cnblogs.com/zhaokunbokeyuan25 查看详情

vs2017git到oschina方法

vs2017中git基本使用方法:1.开发环境vs2017,git服务器使用git.oschina.net2.打开vs2017   创建项目     如果已有项目则:  3.完成后在文件前面会有小锁的图标,说明文件已经添加到本地git中,注意到现在还没有推到远... 查看详情

vs2015与git的简单使用

前言在白忙之中抽了点时间,记录了下VS与Git的简单使用。在之前使用命令行的时候,提交或拉取代码时,总报错:(提取时遇到错误:UnsupportedURLprotocol),后来在网上查了些资料,最终也没找到个解决办法。开始,同事还说是VS... 查看详情

vs2015使用oschina的git功能

好长时间没有写博了,把今天的新的记录一下。最近开始使用vs2015,vs2015支持git平台和TF功能,因为....,我选择了OSChina的git。一开始学习的此篇文章http://my.oschina.net/gal/blog/141442,貌似不行。后来自己在vs2015的“扩展与更新”功... 查看详情

在 VS Code 中使用 Git Bash 终端 - 如何强制它在内部打开

】在VSCode中使用GitBash终端-如何强制它在内部打开【英文标题】:UsingGitBashterminalinVSCode-howtoforceittoopeninternally【发布时间】:2019-09-0200:48:48【问题描述】:重复:IaskedthisonSuperUserwithoutanswer使用:编辑器:VS代码终端:GitBashVSCode提... 查看详情

git在vs中的使用

参考教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0001、安装GIT,可以查看上面教程中相关的安装总分2、创建版本库:打开VS工作文件夹-打开GITBash命令-gitinit创建空的本地Git存储库,再次打开解决方案,会自... 查看详情

vs团队资源管理器(vs自带git)使用说明_使用vs自带git推送到远程存储库

使用git存储库是相当好的习惯,每次码完代码就推送到远程存储库,万一不小心把本地代码搞废了,或者硬盘坏了,或者中了勒索病毒,本地代码丢失了还能从服务器上下载。我曾经就中了一次勒索病毒,本地电脑上的所有文档... 查看详情

码云使用git使用及vs2015与码云关联使用

关于码云的使用,查了不少资料,网上的资料对于我这样的没用过码云的新手来说也就呵呵了,走了一些弯路,现将走过的弯路说明如下:1、码云不能单独使用,需要本地安装Git软件或者使用VS,Eclipse插件中的git插件2、如果想... 查看详情

终端 Git 跟踪与 VS Code git 跟踪不同步

...题描述】:当我从终端添加、修改或删除文件时(我正在使用iTerm2-ohmyzsh-git扩展)暂存它们并提交它们,它不会反映在我的VS代码git跟踪中。我在VS代码中的源代码控制部分仍然说更改不是使用git暂存或跟踪的。而且我 查看详情

git使用中显示“anothergitprocessseemstoberunninginthisrepository...”问题解决(代码片段)

一、引言:问题回忆这几天,我同时在使用vs2017自带的git管理工具和gitbash命令行工具对于同一个工作区进行了git操作管理。其中,当我在vs2017中对文件进行了更改,突然脑洞大开,想要使用gitbash使用命令行进入到工作区使用命... 查看详情

在visualstudio中使用git命令提示符

...把GitBush作为浮动窗集成进来,但我们可以通过PowerShell来使用Git命令。---------------------------------------------------------------------------------1、安装Gitforwindows2、把Git.exe所在文件夹的 查看详情

vs使用git管理binobj去除版本控制

在.net开发中,有很多文件是不希望上传,加入协助开发中,例如生成在的bin/Debug,bin/Release文件等。在代码目录下建立.gitignore文件:.gitignore(用记事本另存可以保存这个名字),配置上要忽略的文件或者文件夹,然后提交到git上... 查看详情

visualstudio中使用gitflow

在VS下使用GitFlow管理项目开发1.右键将你的解决方案添加到源代码管理,如果你的VS没有安装git,会提示安装,安装完成之后,在团队资源管理可以看到如下界面(图一) 2.安装gitflow,vs-工具-扩展和更新,联机选项卡中输入gitfl... 查看详情

vs2017git使用

 这里是以【码云】为例 查看详情