Wilson Mar bio photo

Wilson Mar

Hello. Hire me!

Email me Calendar Skype call 310 320-7878

LinkedIn Twitter Gitter Google+ Youtube

Github Stackoverflow Pinterest

What are those files in repositories on GitHub


Overview

README.md

This specific name is detected by GitHub to display information about the project it is a part of.

.gitignore

.gitattributes

.editconfig

The contents of this file specifies the editing preferences used to create files in the project, such as the number of spaces for each indent. For example:

; This file is for unifying the coding style for different editors and IDEs.
; More information at http://EditorConfig.org
 
root = true
 
; Use 2 spaces for indentation in all Ruby files
 
[*.rb]
indent_style = space
indent_size = 2
 
[Rakefile]
indent_style = space
indent_size = 2
 
[Gemfile*]
indent_style = space
indent_size = 2
 
[config.ru]
indent_style = space
indent_size = 2
   

.iml

*.iml files are not really needed and can be gitignore’d.

*.iml files are created by IntelliJ IDEA based on the pom.xml file read by Maven to resolve dependencies of the project.

So .iml and pom.xml files contain duplicate information. When IntelliJ opens, it asks permission to auto import the pom.xml. IntelliJ doesn’t overwrite pom.xml with what is in .iml, so your pom.xml is the primary authority on settings.

The .iml file is needed by IntellJ to build/run/test/deploy/debug Maven projects in IDEA without using Maven. This enables experimentation with dependencies without changing the pom.xml. Note: that all the modifications you make will be reverted on next Maven import.

In other words, IDEA doesn’t understand Maven model directly, it converts it to its own project model used by all the subsystems, and the internal project information needs to be stored somewhere, hence the .iml files and .idea project directory. This way IDEA doesn’t need to analyze the pom file every time you open the project and resolve all the dependencies again, it’s done only when the pom.xml changes.

.travis.yml

This file specifies how the Travis.io web service builds the project.

language: ruby
rvm:
  - 2.0.0
  - 1.9.3
script: bundle exec rake install; bundle exec rake generate
   

A SVG image is added within the README.md text to flag whether Travis was successful at building.

CONTRIBUTING.md

This contains instructions for how others can contribute to the project.

Gemfile

This file is for Ruby-language projects to specify its dependencies, similar to what Maven does.x

Gemfile.lock

More

This is one of a series on Git and GitHub:

  1. Git and GitHub videos

  2. Why Git? (file-based backups vs Git clone)
  3. Git command shortcuts

  4. Git-client based workflows
  5. Git whoops (correct mistakes)
  6. Git rebase
  7. Git interactive merge (imerge)
  8. Git HEAD (Commitish references)
  9. Git commits with a Tag and Signature

  10. Git custom commands
  11. Git utilities
  12. Git hooks

  13. GitHub data security

  14. TFS vs GitHub
  15. GitHub REST API
  16. GitHub GraphQL API
  17. GitHub PowerShell API Programming
  18. GitHub GraphQL PowerShell Module