git checkout 从一个分支到另一个分支的更改

标签 git

<分区>

我在 branchX 上。我在工作目录中做了一些更改。它们都反射(reflect)在“未准备提交的更改”中。 现在我执行 git checkout branchY。有时我会把更改移到分支的“未提交提交的更改”中,例如:

M <some file1 path>
M <some file2 path>

有时 git 会给我这条消息 - 请在切换分支之前提交您的更改或存储它们。

git 如何决定何时反射(reflect)更改以及何时中止? 如果我在不提交的情况下 checkout ,git 不应该永远将一个分支的“未暂存的更改”更改移动到另一个分支吗?

最佳答案

您引用的第二条消息(请在切换分支之前提交您的更改或存储它们。)发生在移动您的未决更改会在待 check out 分支上产生冲突时.

当没有检测到冲突时,工作树首先更新关于 HEAD 现在指向的提交,然后您的未决更改在上面重放,您准备好添加更多更改或正确提交离开。

作为旁注,在 checkout 另一个分支之前始终返回到干净状态被广泛认为是一种好习惯。在分支上提交*或 stash 更改可能是实现此目的的最常见方法。

(* 因为这个提交目前只是本地的,当你返回到这个分支时,你将有机会修改它或完全删除它。)

关于git checkout 从一个分支到另一个分支的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52780419/

相关文章:

git - Heroku 的新手 : Error when push my app to Heroku

git - 恢复 `git fetch --prune --tags`之后的轻量级标签

git - 如何恢复 Git 中丢失的提交?

git - 如何从 Git 跟踪文件中删除 Redis 文件 dump.rdb

git - ISO 9001/CMMI 对一般源代码控制,尤其是 Git/Mercurial/DVCS 有何影响?

git - 为所有项目生成源和更新文件夹

java - Eclipse git 插件和获取当前分支的方法 - 将 id 提交到 Java 代码版本信息字符串

javascript - 将项目翻译到我的 editorconfig

git - 将 svn 仓库与 git 仓库 merge

git - 有没有类似bzr qannotate的git blame gui?