繁体   English   中英

GIT - 稀疏结帐未按预期工作

[英]GIT - sparse checkout not working as expected

我在服务器上检出了一个 git repo。 该 repo 曾经在根目录上包含所有相关文件,但我必须进行一些更改,现在我有两个文件夹, srcdist ,我想跟踪这两个文件夹。

我遇到的问题是,在我的服务器上,如果我拉,我现在必须在 dist 文件夹中导航才能看到一些东西。

我试着搜索了一下,我认为我想做的是所谓的稀疏结帐。

我遵循了本教程: http : //jasonkarns.com/blog/subdirectory-checkouts-with-git-sparse-checkout/ ,特别是谈论现有项目的部分,我做了提到的事情:

  1. ssh 进入我的服务器
  2. cd 进入项目文件夹
  3. git config core.sparsecheckout 真
  4. echo dist/ >> .git/info/sparse-checkout
  5. git read-tree -mu HEAD

但什么也没发生。 我的意思是,我仍然需要导航到 myproject/dist 才能看到一些东西。

我还尝试cat sparse-checkout文件并且dist/存在。 我也试过git pull origin master ,但没有运气。

我在这里错过了什么吗?

你做了所有应该做的事情。


sparse checkout

通过稀疏结帐,您基本上可以告诉 Git 从工作树中排除某些文件集。 这些文件仍将是存储库的一部分,但它们不会出现在您的工作目录中。

在内部,稀疏检出使用skip-worktree标志将所有排除的文件标记为始终更新。

 # enable sparse checkout in an existing repository: git config core.sparseCheckout true # Create a .git/info/sparse-checkout file containing the # paths to include/exclude from your working directory. # Update your working directory with git read-tree -mu HEAD

在此处输入图片说明


另一种可能对您有用的解决方案:

Splitting a subfolder out into a new branch/repository

# use filter-branch to extract only the desired folder into a new branch
# once you done with your work you can always merge it back again.

git filter-branch --prune-empty --subdirectory-filter YOUR_FOLDER_NAME <branch>
# Filter the master branch to your directory and remove empty commits

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM