Git checkout 分支不改变工作目录

Git checkout branch doesn't change working directory

我不太确定如何表达这个问题,因为我是 git 的新手。我的一位同事正在 b运行ch 中开发一项名为 "rotation." 的功能,我想利用他编写的代码,所以我 运行 git checkout rotationmasterrotation b运行ches 之间的主要区别是旋转 b运行ch 有一个名为 rotation/ 的额外子目录。然而,在 运行 git 签出之后,这个子目录并没有出现在我的工作目录中。我如何让这个子目录显示出来?我做了一些谷歌搜索,发现当您 git 签出 b运行ch 时 git 不会对您的工作目录进行更改,如果这些更改会与您的工作目录中的跟踪更改发生冲突。然而,这里不是这种情况,至少对于 rotation/ 子目录而言,因为它甚至不存在于 master 中。那么为什么这个子目录没有出现呢?我如何获得它?

你试过git pull origin rotation了吗? 表格应为 git pull <remote> <branchname>.

仅仅检查分支不足以对您的计算机进行远程更改。您必须使用 git pullgit fetch.

这是一个 useful diagram you can use as a reference.

在下面的评论中,我假设有三个存储库,您自己的本地存储库,您同事的存储库和中央存储库。听起来您已经有一个名为 rotation 的本地分支。如果您的同事将她的 rotation 分支推送到中央仓库,您需要使用同事的更改更新该分支:

$ git checkout rotation
$ git pull origin rotation

请注意,如果您的同事只创建了一个目录而没有添加任何文件,那么她无法提交它。 Git 不跟踪目录本身。相反,它会跟踪文件并存储有关文件所属目录的额外信息。