【问题标题】:How to pull only particular files from a git repository?如何从 git 存储库中仅提取特定文件?
【发布时间】:2014-01-14 14:23:37
【问题描述】:

我有 2 个存储库 A 和 B。

我只想将存储库 A 中的一些文件提取到存储库 B。

有什么办法吗?

【问题讨论】:

    标签: git git-pull


    【解决方案1】:

    Git 不是面向文件的 SCM。历史记录是基于树的,因此您不能要求 Git 从远程存储库中仅签出单个文件。

    但是,如果您使用的是存储库浏览器界面(例如 Github 提供的)或 gitweb,您当然可以从远程存储库下载单个原始文件。

    【讨论】:

      【解决方案2】:

      如果你想处理文件而不是提交,一个选项是在 git 之外进行,即设置

      files/project_1 # Includes a .git directory at this level.
      files/project_2 # Same here.
      

      你可以的

      cp files/project_2/your_spec*.* files/project_1/
      

      然后

      cd files/project_1
      git add .
      git commit -m"msg"
      

      【讨论】:

        【解决方案3】:

        如果您不介意拉取整个存储库 A(即您不担心由于某种原因节省下载时间),您应该可以拉取到另一个分支:

        git pull --no-commit <URI for repository A> master:temp-branch
        

        然后您可以自动合并 temp-branch 或从中挑选提交(如果您真的想合并一些补丁而不是文件,或者如果文件是在一个或多个方便的提交中添加的)。

        或者,如果您不想要存储库 A 的历史记录,但将其所有文件保存在某处也可以:

        git clone --depth 1 <URI for repository A> somewhere
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-07
          • 2021-09-14
          • 1970-01-01
          • 2012-08-14
          • 1970-01-01
          • 2017-02-20
          • 2011-04-16
          • 1970-01-01
          相关资源
          最近更新 更多