Ignite

Git(二)

2017-12-26

最近在开发项目的过程中,我所在一个叫dev的分支开发,正开发到一半,头儿让我去master分支
修改一个bug,所以我必须先把正在改的代码暂存起来或者提交,才可以去切换分支开发。
在这个场景下:有三种方法去解决:

及时commit代码

在dev分支上把已经开发完成的部分代码commit掉,不push,然后切换到master分支上修改代码,
做完了commit,所有分支互不影响,当然勤commit是一个好习惯。

使用git stash

在dev分支上,我可以

git stash或者 git stash save “修改的信息"

这样的话,你的代码就回到上一个commit了,直接git stash也行,git stash 栈会给你一个hash值作为版本的说明,但我觉得最好自己写说明比较明朗。然后你到master分支之后,完成了头二交给的任务,你就可以回到dev分支,然后输入:

git stash pop或git stash list

就可以回到刚才修改时候的版本了。这就相当于,压栈出栈的过程,将旧版本代码压栈,然后
切换分支开发,然后回到原先分支,出栈获得之前正在修改的代码。

git stash apply stash@{0}

的作用是可以指定栈中的一个版本,
通过

git stash list 可以看到所有的版本信息:

1
2
stash@{0}: On master: Uncommitted changes before rebase
stash@{1}: On master: Uncommitted changes before Checkout

然后你可以选择一个你需要的版本执行:

git stash apply stash@{0}

然后你的代码就回来了。

用IDE工具的shelve的功能

我用的webStorm有shelve功能,shelve的意思是“将…搁在一边”,即把还没写完的代码先搁在一边。

首先在IDE的底部找到Version Control,点开会有local的选项卡,选中你要搁置的代码,点击右键,选择“Shelve Changes”,在提交的输入框中输入你的注释,以便回来的时候识别你需要的版本,点击“Shelve Changes”键即可。这时选项卡上会多一个“Shelf”的选项卡,里面就有你搁置的代码。

这时候你可以去master分支修改代码,改完了之后回到dev分支,到“Shelf”选项卡下选择你要恢复的代码或者版本,点击右键选择“Unshelve Changes”,你的搁置的代码就回来了。

Tags: Git
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章