git checkout到特定文件夹

时间:2015-12-31 09:30:35

标签: git

我是git的新手,我想从远程到本地只在本地分支的特定文件夹中进行更新,我做了以下操作:

git fetch
git checkout origin/branch-name -- /path/to/particular/folder

我获得了该特定文件夹的最新代码,但是当我执行git status时,它会显示最新的文件作为修改后的文件(作为暂存文件),但我不想要这个。

我的要求是,当我执行git status时,它必须显示everything is up-to-date之类的消息。

我是否需要更改上述{​​{1}}和git fetch命令或其他替代方法?

4 个答案:

答案 0 :(得分:1)

当您checkout仅指定特定文件或文件夹时,它会更改您的工作目录。很明显,这些文件处于modified状态。

如果您希望所有内容都为up-to-date - 您需要将这些文件提交到本地分支。

您应该问问自己 - 为什么只签出特定的文件或文件夹?这不是常见的工作流程。你可以在某些特定情况下这样做。

答案 1 :(得分:1)

似乎你以错误的方式使用GIT,因为 - 与其他源代码控制系统不同 - 文件或文件夹本身并不代表。 您可能希望将对一次提交(可能在不同分支上)所做的更改添加到本地分支中。 如果是这种情况,那么最好的操作就是执行某个提交的git cherry-pick

答案 2 :(得分:1)

Git不是SVN。您不会将修订签出到某个文件夹中。您有一个工作副本。在该工作副本中,您可以

git checkout branchname

以检查此工作副本中的单个分支。如果要同时检出同一个仓库的两个不同分支,则需要两个工作副本。

答案 3 :(得分:0)

我同意lgal S说你也可以git stash你的代码然后pull你的更新代码,然后在完成后应用更改 关于git stash的好处是你不必提交你的改变,如果还没有完成,你只需保留它并pull你的更新然后回到你的工作,完成后你可以commit您可以查看git stash here

的文档