我是git的新手,我想从远程到本地只在本地分支的特定文件夹中进行更新,我做了以下操作:
git fetch
git checkout origin/branch-name -- /path/to/particular/folder
我获得了该特定文件夹的最新代码,但是当我执行git status
时,它会显示最新的文件作为修改后的文件(作为暂存文件),但我不想要这个。
我的要求是,当我执行git status
时,它必须显示everything is up-to-date
之类的消息。
我是否需要更改上述{{1}}和git fetch
命令或其他替代方法?
答案 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