git切换到别的分支,怎么不把修改带过去
dev分支切换到master分支如何不把BladeUserDetailsServicesImpl这个class带过去
正常的流程是先commit如果不想commit的话,那就 git stash
一下(当前分支或者别的分支上都可以进行)把当前的修改保存一下,注意这里是保存而不是 add
到暂存区,如下图
输入命令后当前分支的BladeUserDetailsServicesImpl文件就和回滚到了没修改之前的状态,这样就可以切换的master分支了,在master分支操作完后,切回dev分支,想还原到第一张图的样子就输入 git stash pop进行还原,如下图
这样就还原到第一张图的样子了
git操作笔记
Git基本操作↓↓↓
$ git checkout master 切换分支 -- 切换到主分支
$ git checkout master 切换分支 -- 切换到主分支
$ git checkout -b dev 创建dev分支,然后切换到dev分支 == 等价于 下面两条命令
$ git branch dev //创建分支----创建开发分支 , $ git checkout dev// 切换分支 --- 切换至开发分支
//作用是checkout远程的Release分支,在本地起名为myRelease分支,并切换到本地的myRelase分支 $ git checkout -b myRelease origin/Release $ git branch -r
// 查看远程分支 $ git branch -a //查看所有分支
$ git branch -D dev 删除开发分支 ---删除开发分支
$ git branch 查看当前分支 --- 查看所有分支 *为当前分支
$ git merge dev 合并分支内容-------比如当前在master分支 把dev的分支内容提交到master分支上---确认代码 ---解决冲突 $ git push 提交 $ git pull 拉取
查看历史版本 查看所有的历史版本,获取你git的某个历史版本的id
1.git log 2.恢复到历史版本 git reset --hard fae6966548e3ae76cfa7f38a461c438cf75ba965 3.把修改推到远程服务器 git push -f -u origin master
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -D <name>
Git提交代码的流程——新手适用
pull:是下拉代码,相等于将远程的代码下载到你本地,与你本地的代码合并
push:是推代码,将你的代码上传到远程的动作
完整的流程是:
第一种方法:(简单易懂)
1、git add .(后面有一个点,意思是将你本地所有修改了的文件添加到暂存区)
2、git commit -m""(引号里面是你的介绍,就是你的这次的提交是什么内容,便于你以后查看,这个是将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中)
3、git pull origin master 这是下拉代码,将远程最新的代码先跟你本地的代码合并一下,如果确定远程没有更新,可以不用这个,最好是每次都执行以下,完成之后打开代码查看有没有冲突,并解决,如果有冲突解决完成以后再次执行1跟2的操作
4、git push origin master 将代码推至远程就可以了
第二种方法:
1、git stash (这是将本地代码回滚值至上一次提交的时候,就是没有你新改的代码)
2、git pull origin master(将远程的拉下来)
3、git stash pop(将第一步回滚的代码释放出来,相等于将你修改的代码与下拉的代码合并)然后解决冲突,你本地的代码将会是最新的代码
4、git add .
5、git commit -m""
6、git push origin master
这几步将代码推至了远程
最后再git pull origin master 一下,确保远程的全部拉下来,有的你刚提交完有人又提交了,你再拉一下会避免比的不是最新的问题
常见问题
1:误将代码提交到缓存中(利用 git add 命令误将代码提交的缓存中) 解决办法:利用 git reset 命令将撤回缓存中的代码。
2:误将代码提交到本地仓库(利用 git commit 命令误将代码提交到本地仓库) 解决办法:
git reset—soft + 版本号 回退到某个版本,只回退了commit的信息,不会改变已经修改过的代码。
git reset —hard + 版本号 彻底回退到某个版本,本地的代码也会改变上一个版本内容。
3:.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决办法:先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
4:超过100M解决方案
(1)查看哪个文件超过了100M 有可能错误直接爆出是哪个文件,也有可能只是爆出了该文件的代号。如果是代号需要先使用该语句查询具体是哪个文件
$ git rev-list --objects --all | grep xxx
(2) 从缓存中删除
$ git filter-branch --tree-filter 'rm -f xxx' --tag-name-filter cat -- --all 或者 git filter-branch --tree-filter 'rm -f lxznv1/release/lxznv1_1.0.13_release.apk' HEAD
这里的XXX替换成报错文件的具体路径(例如我这里的xxx是resoure/release/jh1_1.0.13_release.apk)
(3)3.再次进行push操作 git push 成功!