首页 > 解决方案 > 切换分支时如何停止git自动更新?

问题描述

我有两个分支:

----master
  |
  |----lf

我在分支中开发了一些新功能lf并获得了一些输出。然后,我尝试切换回master(通过git checkout)并执行程序来比较结果。不幸的是,git checkout master将更新我所做的lf

M   Makefile
M   src/mainloop.c
M   src/threadpool.c
M   src/threadpool.h
Already on 'master'
Your branch is up to date with 'origin/master'.

结果,我在两个分支中得到了完全相同的项目。这不是我想要的。我不希望 master 自动更新我更改的内容lf

我的问题是:

  1. 如何在master执行分支(git branch lf)之前恢复代码?

  2. 如何在没有自动更新的情况下在不同的分支之间切换?

标签: gitgit-checkout

解决方案


  1. 如何在执行分支(git branch lf)之前恢复 master 中的代码?

在做之前做一个提交(例如git commit -a -m "…")。git checkout master

否则,git stash如果您不想进行“临时”提交,请执行此操作。稍后,执行git checkout lf && git stash pop检索您未提交的代码。

  1. 如何在没有自动更新的情况下切换不同的分支?

基本上没有“自动更新”:您观察到的原因只是您的工作目录不干净(即,有一些未提交的修改),并且更改分支不会自动更新任何东西,它只是保留这些按原样修改(否则会导致数据丢失!)

此外,您可能希望随时运行以更深入地了解当前分支/索引/工作目录git status的当前状态的一个方便的命令是:


推荐阅读