相关疑难解决方法(0)

当前分支上有未提交的更改时,检出另一个分支

大多数时候,当我尝试检出另一个现有分支时,如果我在当前分支上有一些未提交的更改,Git不允许我.所以我必须首先提交或存储这些更改.

但是,偶尔Git允许我签出另一个分支而不提交或存储这些更改,它会将这些更改带到我签出的分支.

这里的规则是什么?更改是分阶段还是未分阶段是否重要?将更改传递给另一个分支对我没有任何意义,为什么git有时会允许它?也就是说,它在某些情况下有用吗?

git

319
推荐指数
4
解决办法
12万
查看次数

为什么git命令切换名为"git checkout"的分支?

为什么git命令要切换名为git checkout?的分支?
它真的有意义吗?

我会改名git switch.此外,git checkout还有其他含义:例如还原文件(如svn revert)

git git-checkout

18
推荐指数
4
解决办法
2万
查看次数

理解git中的分离HEAD

我正在学习git并且正在关注http://gitimmersion.com上的优秀教程.

在这些教程中,有一个模糊试图解释分离的HEAD,并指出:

git中的"分离的HEAD"消息只是意味着HEAD(跟踪当前工作目录应匹配的内容的git部分)直接指向提交而不是分支.只有在您不切换到其他分支时,才会记住在此状态下提交的任何更改.一旦您签出新的分支或标签,分离的提交将"丢失"(因为HEAD已移动).如果要保存以分离状态完成的提交,则需要创建一个分支来记住提交.

关于这个的一些问题:

  1. 什么是独立的HEAD,以及创造它的条件是什么?
  2. 为什么分离的HEAD指向特定的提交而不是分支?
  3. 当你有一个分离的HEAD时,你是否总是需要创建一个新的分支来提交/推送它的变化?为什么/为什么不呢?

提前致谢!

git

4
推荐指数
1
解决办法
1万
查看次数

git checkout感到困惑

我是git的新手,并试图围绕分支的工作方式.根据文档git checkout

更新工作树中的文件以匹配索引或指定树中的版本.如果>没有给出路径,git checkout也会更新HEAD以将指定的分支设置为>当前分支.

所以据我所知,我工作的目录中的文件(我执行git init的文件)应该根据我所在的分支进行更改.我很困惑,因为当我在分支之间切换时不会发生这种情况.在切换分支之前我正在编辑的编辑存在于我切换到的分支中.我做错了什么或git checkout不能这样工作,我只是误解了文档?

git

4
推荐指数
2
解决办法
2699
查看次数

Git:签出与恢复单个文件

我将在序言中提到,我已经使用 Git 多年了,但我的知识仅限于非常基本的工作流程。意识到这一点,我在“高级”Git 功能方面已经取得了很大进步,但这里有一个我不太明白的问题:

具体是git checkout [file]做什么的?

我的理解是,它检索该特定文件的最新修订/提交,丢弃任何未暂存的工作副本。

所以,我想知道这是否与 有何不同git restore [file],以及何时我可能想使用两者中的任何一个。

可悲的是,我在其他地方找不到非常明确的答案。

git

4
推荐指数
2
解决办法
2108
查看次数

如何从工作目录而不是登台区域重置所有文件?

有没有一种方法可以重置工作目录中的所有文件,而不能重置暂存区中的所有文件?

我知道使用以下命令可以重置任何单个文件:

git checkout thefiletoreset.txt

另外,通过使用以下命令,可以将整个存储库重置为最后的提交状态:

git reset --hard

但是,是否有任何命令可以重置整个工作目录,而使暂存区域保持不变?

git

1
推荐指数
2
解决办法
1641
查看次数

标签 统计

git ×6

git-checkout ×1