簡體   English   中英

為什么設置 github 頁面時必須丟失未跟蹤的文件?

[英]Why is it necessary to lose untracked files when you set up github pages?

Github 有一個功能,您可以在其中放置 HTML 頁面。 這里有詳細信息)。

無論如何,我最近用它來放置上述頁面。 執行此操作的基本說明是:

// In order to create a new root branch, first ensure that your working directory is clean by committing or stashing any changes. The following operation will lose any uncommitted files! You might want to run this in a fresh clone of your repo.

$ cd /path/to/fancypants
$ git symbolic-ref HEAD refs/heads/gh-pages
$ rm .git/index
$ git clean -fdx

// After running this you’ll have an empty working directory (don’t worry, your main repo is still on the master branch). Now you can create some content in this branch and push it to GitHub. For example:

$ echo "My GitHub Page" > index.html
$ git add .
$ git commit -a -m "First pages commit"
$ git push origin gh-pages

一切順利; 正如所宣傳的那樣,我未跟蹤的文件已被擦除,但我制作了該目錄的副本,然后將必要的內容移回了原處。 在分支之間來回切換(我使用 SmartGit)似乎不會擦除未跟蹤的文件。

但是,我有興趣擴展我對 Git 的基本知識,並且想知道為什么在第一次設置 gh-pages 時需要擦除未跟蹤的文件。 我原以為可以設置 gh-pages 分支,將 html 文件添加並提交給它並推送它,所有這些都不會影響未跟蹤的文件。 然后就切換回原來的分支。

最好的選擇,制作一個新的克隆並這樣做。 如果您絕對必須在您當前正在使用的存儲庫中執行此操作,請嘗試git checkout --orphan gh-pages

如果您刪除git clean命令並執行git add <files>而不是 git add,則可以在沒有根目錄的情況下創建gh-pages分支git add. . 這將是工作流程:

cd /path/to/fancypants
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
echo "My GitHub Page" > index.html
git add index.html
git commit -a -m "First pages commit"
git push origin gh-pages

我認為他們以簡單的方式表達方向並避免“花哨”。

這是因為 git 頁面適用於 web 文件(例如 .html)而不是源文件。 因此,這些說明告訴您的是如何在沒有所有源文件的情況下創建一個完全干凈的分支(在正常行為中您不想這樣做),用於僅托管 web-serve-able-on-github 文件 html, css、javascript。

所以如果你想要干凈,你可以這樣做。 如果你對完全骯臟沒問題,你可以嘗試簡單地創建一個分支(git branch gh-pages)並推送它。 我認為我以前做過,而且效果很好,尤其是當我開始處理存儲庫中的 Web 可服務內容時。

問題是git clean git clean從當前工作樹中刪除任何未跟蹤的文件。

您可以為未跟蹤的文件設置.gitignore文件並保留-x標志。 您應該查看git-clean手冊頁 如果您沒有 unix 系統: http://linux.die.net/man/1/git-clean

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM