如何在 GIT 中仅推送从某个提交开始的某些引用和文件



我有一个本地的 GIT 存储库供我的博士学位使用。我想在GitHub上创建一个私有仓库,其中只包含我的导师的主要博士文档和文章(Markdown Files)。

创建了一个新分支,在其中删除了所有内容,然后我从 man PhD aranch 中签出了特定文件,并从文章分支中签出了文章,如下所示:

git checkout phd_main Dissertation/dissertation.md

因此,我的监督分支中的工作树仅包含我刚刚签出的路径。

但是,当我提交并推送到 GitHub 存储库时,所有文件和引用都会被推送,并且可以读取所有内容。有趣但不幸的是,在本地,我的分支中只有Dissertation/dissertation.md文件,但远程我拥有一切。

我如何拥有一个只包含专门签出文件的分支,并且只将这些文件和引用推送到从该分支中的第一个提交开始的版本。

使用 git checkout --orphan branchname 创建新分支。这将创建一个名为branchname的分支,该分支没有历史记录,这就是您要查找的。

要创建一个空分支,您需要使用

git checkout --orphan <branchname>

接下来,删除目录中除那些 md 文件之外的所有文件,然后执行

git commit -m <commit message>
git push origin <branchname>

如果要确保在此分支上仅提交 .md 文件,请创建并提交包含内容的 .gitignore 文件

*
!*.md

最新更新