git切换到别的分支,要暂时保存当前分支的修改(不想进行add 和commit)的方法 git stash

git 切换分支时会把未add或未commit的内容带过去, 这一点值得注意。

为什么呢?

因为未add的内容不属于任何一个分支, 未commit的内容也不属于任何一个分支。 也就是说,对于所有分支而言, 工作区和暂存区是公共的。

要想在分支间切换, 又不想又上述影响, 怎么办呢?

git切换分支保存修改的代码的方法

最近在一个原有的项目上做一次非常大的改版,底层的数据库做了很大的变化,跟现在的版本无法兼容。现在的工作除了开发最新的版本之外还要对原来的版本做例行的维护,修修补补。于是有了在两个分支之间游走切换的问题,最新改版的代码在分支new上,旧版本的代码在分支old上,我在new上开发了一半,忽然有人给了我一个改进的需求,于是我要切换回old去修改代码。在这个场景下,我摸索了三种方法:
及时commit代码

在new分支上把已经开发完成的部分代码commit掉,不push,然后切换到old分支修改代码,做完了commit,所有分支互不影响,这是一个理想的方法。

使用git stash

有时候写了一半的JAVA代码,都还不能编译通过的,就被叫去改另一个分支的bug了。

在new分支上的时候在命令行输入:

git stash

或者

git stash save “修改的信息"

这样以后你的代码就回到自己上一个commit了,直接git stash的话git stash的栈会直接给你一个hash值作为版本的说明,如果用git stash save “修改的信息”,git stash的栈会把你填写的“修改的信息”作为版本的说明。

接下来你回到old分支修改代码完成,你又再回到new分支,输入:

git stash pop

或者

git stash list

git stash apply stash@{0}

就可以回到保存的版本了。git stash pop的作用是将git stash栈中最后一个版本取出来,git stash apply stash@{0}的作用是可以指定栈中的一个版本,通过git stash list可以看到所有的版本信息:

stash@{0}: On order-master-bugfix: 22222

stash@{1}: On order-master-bugfix: 22222

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

git stash apply stash@{0}

这时候你搁置的代码就回来了。

原文地址:https://www.cnblogs.com/imike/p/10624856.html

时间: 2024-07-31 07:15:08

git切换到别的分支,要暂时保存当前分支的修改(不想进行add 和commit)的方法 git stash的相关文章

git切换分支冲突解决-删除分支

在项目开发中,有多个版本分支需要不时的来回切换,在切换的过程中,产生了很多冲突,提交的时候 也提交不了.总结下在解决这个过程中使用的两种方法: 1.删除项目在磁盘的目录,包括 git 文件,重新 clone 一遍,保存到本地,然后导入到开发工具中. 2.本地目录下分支多,切换时产生冲突,切换到一个没有问题或不再使用的分支.然后删除有问题的分支, 再checkout 一遍对应的分支,即可. 删除分支的命令为:  删除本地分支: git branch -d devexception 强制删除,git

git 切换远程分支

http://zhidao.baidu.com/link?url=cuqJsL9skJJn5c556zXfP1dgCAOUK37CDXkNIw_sS0YKmvoROTI0HP7-PbKjgs6Lv4XrGleG2fjg5AaNgASlxgmt00c7rsC5gpPryKR_D_G git clone只能clone远程库的master分支,无法clone所有分支,解决办法如下:1. 找一个干净目录,假设是git_work2. cd git_work3. git clone http://myrep

git切换分支报错解决

今天使用git切换分支的时候总是报这种错误. 解决办法: 在项目文件夹中.git文件夹(这是个隐藏文件夹,需要在文件管理导航栏--工具--文件夹选项--查看--勾选显示隐藏文件夹)找到不能创建的文件index.lock重新git checkout dev即可 原文地址:https://www.cnblogs.com/bigDipper/p/8981792.html

git切换分支导致代码丢失找回(git reflog找回错误的重置)

1.使用git reflog查看日志 2.切换到丢失的分支 3. 创建一个临时分支  如(diff),并切换到dev(原分支),然后合并diff到dev分支 4.查看状态 5. 原文地址:https://www.cnblogs.com/chenlove/p/9547301.html

前端使用Git 切换分支 查看线上远程,本地切换

想要使用Git切换线上分支时先 得先查看线上分支 git branch -a //查看线上分支 git branch //查看本地分支 这是线上的分支图(当前是master) 知道有那些分支就可以进行本地切换了 git checkout cz-airport //本地切换至cz-aiport 分支 这样就表示成功切换了分支 (如果git  pull 不成功  就使用   git  pull origin   分支名   就好了) *原因就是一般使用git pull 的话得设置默认的pull分支 

git 切换远程已有分支

本地分支a,且没有分支b,想要切换到远程以后分支b 1. git remote update origin --prune 更新本地分支列表与远程一致 2. git branch 查看本地所有分支,是否已经更新出分支b 3. git checkout b 切换到分支b 4. git merge a 合并分支a到当前分支b上,该解决冲突的解决冲突 5. git push 更新到远程 (如果有需要的话) 原文地址:https://www.cnblogs.com/fairymiao/p/1134491

git切换分支

git切换分支首先通过 $ git branch -a 1来查看所在目录的分支 $ git branch -a  master* trunk  remotes/origin/HEAD -> origin/master  remotes/origin/master  remotes/origin/zhanghanlun 然后输入命令切换分支 $ git checkout -b zhanghanlun origin/zhanghanlun 切换到origin/zhanghanlun分支命令本地分支为

[廖雪峰] Git 分支管理(2):Bug 分支

软件开发中,bug 就像家常便饭一样.有了 bug 就需要修复,在 Git 中,由于分支是如此的强大,所以,每个 bug 都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你接到一个修复一个代号 101 的 bug 的任务时,很自然地,你想创建一个分支 issue-101 来修复它,但是,等等,当前正在 dev 上进行的工作还没有提交: $ git status # On branch dev # Changes to be committed: # (use "git

git查看本地和创建分支、上传分支、提交代码到分支、删除分支等

以下是git命令行里边的命令操作,加上了说明: Welcome to Git (version 1.9.5-preview20141217) Run 'git help git' to display the help index. Run 'git help <command>' to display help for specific commands. ##进入项目目录下 giscafer@LAOHOUBIN-PC /G/002_project $ cd Comments ##查看远程分