VS2019 Git 常用操作详解(三)—— 更改(Changes)

现在,让我们来了解下日常开发中最常用到功能——更改

VS2019 Git 常用操作详解(三)—— 更改(Changes) 

通过前面的学习,我们知道当代码有了更改的时候,只需要填上备注信息,点击全部提交就可以将代码提交到版本库了。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

不过有时候全部提交并不是我们想要的,我将用两个场景来讲解。

1、部分提交—— 暂存Stage

比如你和同事正在开发一个新功能,他现在需要用到你提供的一个接口,但是你的其他功能正在开发,短期内无法完成,如果全部提交可能无法编译通过。

现在该怎么办呢?我们一起来看一下。

项目中有两个更改,但是HomeController未开发完成,我只想提交WeatherForecastController。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 右键要提交的文件,然后点击暂存(Stage),这一步正是执行了之前介绍过的  git add 命令,将更改提交至了暂存区。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 通过  git status 命令来验证下。 

 VS2019 Git 常用操作详解(三)—— 更改(Changes)

这个时候VS的按钮也从提交全部(Commit All)变成了提交临时数据(Commit Staged),接下来提交就可以了。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

2、保护现场—— 存储(Stash)

在实际工作中我们经常会这样一种情况:项目在发布到生产环境后,你继续开发新的功能。

现在生产环境发现BUG需要立即修复,而正在开发的功能短时间内是无法完成并提交的。

我们肯定不能提交未完成的代码,也不可能撤销辛辛苦苦写的代码,存储(Stash)功能就派上用场了。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

存储功能就是将我们尚未提交的部分存起来,得到一个干净的工作区,等BUG修复功能完成后再恢复。

好了,在VS中看看怎么操作。下面的文章中会涉及分支的概念,如果不太情况也没关系,可以看看后面关于分支的文章。

master分支中的代码,已经发布到生成环境。我们在新建的dev分支中继续开发新功能,新增了一个Post方法。此时发现了BUG需要修复。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 

 我们需要切换到master,不得不先进行存储操作,不然的话会出现两种情况:

1、可以切换:在dev分支未提交的更改会继续在master中。

2、无法切换:VS会提示进行存储,如果强制切换到master分支,更改将丢失。

大家可以自己试一下就知道了,至于为什么会这样,去了解一下Git是如何实现分支的。

Well,那就存吧。可以在文本框中输入描述信息,然后点击存储(Stash)会出现两个菜单项。

1、全部存储(Stash All):全部存起来。

2、全部存储并保持暂存(--保留索引):存工作区,不存暂存区。中文反而不容易看懂,英文都是和Git命令对应的。

--keep-index  (index就是暂存区)就是Git的stash命令的一个选项,官方描述是这样:

VS2019 Git 常用操作详解(三)—— 更改(Changes)

VS2019 Git 常用操作详解(三)—— 更改(Changes)

  我们就先点第一个全部存储(Stash All),可以看见在存储列表里面出现了一条记录。

 VS2019 Git 常用操作详解(三)—— 更改(Changes)

 VS2019 Git 常用操作详解(三)—— 更改(Changes)

 看一眼,我们得到了一个干净的工作区,我们可以开心的切换到master分支,新建hotfix分支进行修复啦。

修复完成后,右键点击就可以恢复成之前我们正在开发时的样子。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 这个地方你看中文又会开始疑惑,英文就是对应的Git命令。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

应用(Apply)

应用并还原暂存(--索引):工作区的放工作区,暂存区的放暂存区

将所有作为非暂存应用:全部放工作区

弹出(Pop)

弹出并还原暂存(--索引):工作区的放工作区,暂存区的放暂存区,同时删掉。

将所有作为非暂存弹出:全部放工作区,同时删掉。

 

让我们再用Git命令操作一遍。

此时有一个新增的文件,还有一个修改了的文件,修改的文件已经加到暂存区。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 

 注意:这里有一个新增的文件为Untracked

使用  git stash 命令进行存储

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 

结果发现新增的文件没有被存储

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 

 这是为什么呢,我们来看一下官网的说明。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 

 原来默认情况下只存储工作区和暂存区。要使用-u参数才行

VS2019 Git 常用操作详解(三)—— 更改(Changes)

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 

再看看,这就OK了。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 

或者先使用 git add 命令将文件添加到暂存区再进行存储。

 

存储成功后可以使用 git stash list 命令查看当前的存储列表。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 

使用上面讲到的 git stash applt 或 git stash pop 可以还原,使用 git stash drop 来删除。

VS2019 Git 常用操作详解(三)—— 更改(Changes)

 

如果有多次存储,可以使用 git stash apply stash@{1} 还原指定的存储对象。

 VS2019 Git 常用操作详解(三)—— 更改(Changes)

 

 VS2019 Git 常用操作详解(三)—— 更改(Changes)

 

 

OK,更改的部分就说完了,我也是初学,仅仅介绍了最基础的操作,可以满足大部分日常需求,更多的命令大家自己到官网学习吧。

 

上一篇:2020 BIT冬训-模拟与暴力 B - Two Strings Swaps CodeForces - 1006D


下一篇:C#开发微信门户及应用(41)--基于微信开放平台的扫码登录处理