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

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

 

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

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

1、部分提交—— 暂存Stage

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

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

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

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

 通过  git status 命令来验证下。 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

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

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

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

应用(Apply)

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

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

弹出(Pop)

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

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

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

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

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

使用  git stash 命令进行存储

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

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

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

再看看,这就OK了。

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

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

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

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

 

 

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

参考:廖雪峰的Git教程

猜你喜欢

转载自www.cnblogs.com/q1a0mu/p/13173799.html
今日推荐