Android Studio Bookmarks 切换分支丢失

307 阅读1分钟

Android Studio的书签功能在阅读源码、熟悉新项目、查bug的时候很方便,可以标记代码行,点击直接定位到行数,但是加入书签后切换分支有时候会清空书签栏,这是Android Studio偶现的bug,我的处理方式有两步

  1. 取消勾选 setting -> version control -> confirmation -> restore workspace when switching branches 这一步的目的是为了在切换分支的时候,不让Android Studio重新加载分支的工作区,包括书签、断点之类的
  2. 找到Android Studio 工作区的地址C:\Users\xxx\AppData\Roaming\Google\AndroidStudio2022.3\workspace,在这个目录里找到对应的书签文件,我的是2T0Z9EsZTqx7WMw3fROJ7G8waX8.xml文件,不清楚每个人的文件名是否一致,不一致的话自己打开文件看下里面的内容就能确认自己的书签文件是那个了,放到自己的git仓库,自己做一个版本管理,这样可以在自己新建书签的时候及时push最新文件,等书签被清空后再从git放恢复一下文件
  3. 因为push命令和回滚命令都是固定的重复命令,所以可以写成bat文件,每次运行一下就可以

push

@ECHO OFF
cd C:\Users\xxx\AppData\Roaming\Google\AndroidStudio2022.3\workspace

echo ----------------------------------------------------------
echo  1                    git commit                        1
echo ----------------------------------------------------------
git commit -a -m "update bookmarks"

echo ----------------------------------------------------------
echo  1                    git push                          1
echo ----------------------------------------------------------
git push -u origin master

echo ----------------------------------------------------------
echo  1                    success                           1
echo ----------------------------------------------------------
pause

rollback

@ECHO OFF
echo ----------------------------------------------------------
echo  1                  回滚代码?                          1
echo ----------------------------------------------------------
pause
echo ----------------------------------------------------------
echo  1                确认回滚代码??                      1
echo ----------------------------------------------------------
pause
echo ----------------------------------------------------------
echo  1               确认回滚代码???                     1
echo ----------------------------------------------------------
pause

cd C:\Users\xxx\AppData\Roaming\Google\AndroidStudio2022.3\workspace
echo ----------------------------------------------------------
echo  1                    git fetch                         1
echo ----------------------------------------------------------
git fetch --all

echo ----------------------------------------------------------
echo  1                    git reset                         1
echo ----------------------------------------------------------
git reset --hard origin/master

echo ----------------------------------------------------------
echo  1                    git pull                          1
echo ----------------------------------------------------------
git pull

echo ----------------------------------------------------------
echo  1                    success                           1
echo ----------------------------------------------------------
pause