【问题标题】:How to stop git auto-update when switching branches? [duplicate]切换分支时如何停止git自动更新? [复制]
【发布时间】:2020-08-29 14:08:45
【问题描述】:

我有两个分支:

----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. 如何在我进行分支 (git branch lf) 之前恢复 master 中的代码?

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

【问题讨论】:

  • 执行 git checkout 不会进行合并。你确定没有合并?您应该能够查看 master 的历史记录并将其回滚
  • 我很确定我唯一做的就是通过 git checkout master 从lf 切换到master,然后它会自动更新lf 中的新代码
  • @Steven 您所描述的绝对听起来像是正常行为;有关详细信息,请参阅我的答案。

标签: git git-checkout


【解决方案1】:
  1. 在我做分支之前如何恢复master中的代码(git branch lf)?

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

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

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

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

此外,您可能希望随时运行以更深入地了解current-branch/index/working-directory 的当前状态的便捷命令是:git status

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2011-10-02
    • 1970-01-01
    • 2021-12-25
    • 2010-10-31
    • 2021-09-22
    相关资源
    最近更新 更多