优化代码时忘记切换分支;切换旧分支本地代码回到旧代码;切换分支代码被覆盖


项目总体已完成。昨日进行优化和新增功能。

但是忘了切换到对应的分支后再去修改代码,改完代码后就不让切换分支了。

随后先( git add . )提交了代码,( git commit -m "" )上传了备注信息,再次切换
但不知道切换了分支之后,本地代码也会变成那个分支最后提交完的状态。

比如:切换回了20天前的分支,随后本地的目录、代码也变成了20天前这个分支最后更新时的样子。

所以当看到本地项目内的组件缺少了,代码缺少了;直接懵逼了。

然后一顿操作猛如虎的瞎搞成功凉了。。。由此记录一下正确的处理方法:

以及新学习到的 git命令操作

 

首先尽量要记得,先切换到对应的分支去,再进行对代码的操作;

若遇到 a分支 内的代码写了一些,立刻被通知需要修改 b分支 内的代码,但是又不想立刻提交 a分支 的代码时:

 

 

 

可以用:( git diff )查看 a分支工作区文件的修改内容(有)

1、首先用:( git stash ) 将 a分支的工作区文件内容 放到暂存区

再次用:( git diff )查看 a分支工作区文件的修改内容(没有)

2、随后:切换 b分支 去修改代码,完成后再回到 a分支

3、利用:( git stash pop ) 或(  git stash apply ) 将 a分支的工作区文件内容 取出来,恢复到暂存时的状态

 

git stash pop ) 与 ( git stash apply )  的区别为:

用( git stash )命令之后会在stash列表中生成一个对应的信息,

使用 ( git stash apply )命令恢复,stash列表中的信息是会继续保留的;

而使用( git stash pop )命令进行恢复,会将stash列表中的信息进行删除。

 

进阶操作:

git stash save "要添加的备注信息" ) :与 `git stash` 命令功能相同,区别是可以添加备注

git stash --all )  或( git stash save --all "要添加的备注信息" ) :可以将未被跟踪过的和忽略的文件都储存到暂存区

 

多次使用 ’git stash’ 命令后,栈里充满了未提交的代码,这时候可能对将哪个版本恢复回来困惑;

1、第一次修改暂存

 

2、 第二-第三次修改暂存

 

 

 

git stash list )可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号:

 

git stash pop stash@{$num} )恢复某版本缓存的工作内容,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下

git stash apply stash@{$num} )恢复某版本缓存的工作内容,但不会把存储从存储列表中删除,并将对应修改应用到当前的工作目录下

 

 

上面命令出错误了,原因:花括号被认为是代码块执行标识符,若想正常使用,可用反引号  `` 进行转义

实际可用命令为:( git stash pop stash@`{0`} )、( git stash apply stash@`{0`}

 

 

 

 

stash 暂存区内太多存储,想要删除如下:

git stash drop stash@{$num} ) :丢弃stash某个版本的存储,从列表中删除这个存储(别忘了要使用 反引号  `` 进行转义

 

 

git stash clear ):删除所有缓存的stash版本

 

 

 

 

 

 

一些别人写的 `git stash` 使用:https://www.cnblogs.com/zndxall/archive/2018/09/04/9586088.html  ;  https://blog.csdn.net/tpz789/article/details/113150456

 

 

回到正轨:

如果代码出问题了,可以使用版本回滚,将代码回滚到某提交版本:

首先( git log )查看所有版本号,按 q 为退出

随后( git reset  --hard 需要的版本号 )将代码回滚到自己需要的版本号

最后( git push -f )强制提交,将云端的版本号替换成回退后的版本号

强制推送还可写为:( git push origin 云端分支名 –force

 

切换了旧的分支之后,本地代码也回到了旧分支的代码状态,切换则可变回
这时候将最新分支的代码合并到旧分支里去,旧分支的代码也会变成最新的

首先切换到旧分支( git checkout 旧分支 ),查看自己所属分支( git branch

随后合并最新分支的代码( git merge 最新分支 ),将代码变成最新的

 

 

 

将云端某分支的代码下拉到自己的本地分支:

首先创建或切换到本地分支:( git checkout -b 分支名 )若已存在也不需要 -b

然后将云端的分支代码下拉到本地:( git pull origin 分支名

本地分支与云端分支同名

 

另外插入个知识:

克隆云端项目代码:( git clone 仓库的http链接 )

 

 

 

`git clone`  命令用于克隆GitHub上的项目到本地目录

先进入本地存放目录后,使用该命令

克隆的项目永远都是:master分支下的项目代码

哪怕进入了别的分支。克隆的也依旧是:master分支下的项目代码

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM