将现有项目添加到Github而不初始化.gitignore

时间:2015-12-31 15:23:26

标签: git github

我通常使用以下文档将现有项目添加到Github。 https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/

文档也说.. 为避免错误,请勿使用README,许可证或gitignore文件初始化新存储库。您可以在将项目推送到GitHub后添加这些文件。

所以现在当我第一次推送更改时,所有不必要的 jar文件/目标目录/ ide 文件都被推送。然后我通过像这样添加.gitignore手动排除这些文件..

$ echo '.idea' >> .gitignore
$ git rm -r --cached .idea
$ git add .gitignore
$ git commit -m '(some message stating you added .idea to ignored entries)'
$ git push
  1. 我可以阻止首次添加所有这些不需要的文件吗?
  2. 删除不需要的文件(目标,jar,ide文件)并将它们添加到.gitignore后,我已经验证它们在github中不再存在,但是当我克隆它仍然是100MB的url时,实际的下载大小是不到1MB?有人可以澄清这一点。

3 个答案:

答案 0 :(得分:4)

  1. 首先不添加.gitignore文件的一个原因是确保跟踪所有文件。这样你就不会意外地遗漏一个重要的目录。如果您知道自己在做什么 - 在提交之前添加相应的.gitignore模板。

  2. git历史记录中仍存在.idea目录。 Github上的存储库中有关于removing sensitive data的大量文档。

答案 1 :(得分:3)

在本地进行初始提交时,不要包含存储库中不需要的文件。即:

  1. cd project_directory
  2. git init
  3. git add <everything_except what you do not need>。如果您不想使用.gitignore,则可以移动/删除不在存储库中的文件。
  4. 提交和推送。
  5. 如果您想彻底清除存储库中的文件,另请参阅this answer

答案 2 :(得分:2)

  

为避免错误,请不要使用 README ,许可证或gitignore文件初始化新存储库。将项目推送到GitHub后,可以添加这些文件。

这有点误导。将这些文件放在本地存储库中并在推送时包括它们,即使是第一次也没有任何错误。

以下是一个更清晰的建议:

  

在GitHub上创建存储库时,请不要使用&#34;使用自述文件初始化此存储库&#34;选项,如下所示:

     

GitHub's "Initialize this repository with a README" option

     

此选项适用于全新的存储库,但如果您在计划推送现有存储库时使用它,则会让您头疼。这就是原因:

     
      
  1. 使用此选项时,可以直接在GitHub中创建提交。此提交在本地项目中的任何位置都不存在。
  2.   
  3. 当您推送现有项目时,Git将无法使用您在初始化时创建的单独提交来解析其历史记录。这两个存储库不共享提交,因此无法相互自动解决。
  4.         

    但是,如果您希望在本地存储库中包含README.gitignore或许可文件,并在推送时包含这些文件,请随时执行此操作