I found the simplest thing was to create a file called .gitattributes
in the root folder of my repository, and give it these contents:
* linguist-vendored
*.js linguist-vendored=false
This example tells GitHub/Linguist to ignore all files, and then just look at .js files. My project, https://github.com/aim12340/jQuery-Before-Ready, was listed as HTML because the HTML example files were bigger than the JavaScript files. This file fixes it for me and now it's listed as JavaScript.
As mentioned in the GitHub help page
GitHub uses the open source Linguist library to determine file languages for syntax highlighting and repository statistics.
Some files are hard to identify, and sometimes projects contain more library and vendor files than their primary code.
So you need to check with github/linguist#troubleshooting
in order to fix this situation.
The percentages are calculated based on the bytes of code for each language as reported by the List Languages API.
If the bar is reporting a language that you don't expect:
- Click on the name of the language in the stats bar to see a list of the files that are identified as that language.
- If you see files that you didn't write, consider moving the files into one of the paths for vendored code, or use the manual overrides feature to ignore them.
- If the files are being misclassified, search for open issues to see if anyone else has already reported the issue. Any information you can add, especially links to public repositories, is helpful.
- If there are no reported issues of this misclassification, open an issue and include a link to the repository or a sample of the code that is being misclassified.
Update February 2017 (one year later):
The article "How to Change Repo Language in GitHub" from Monica Powell
Upon researching how to resolve GitHub misclassifying the language of your projects I found out the solution is as simple as telling GitHub which files to ignore.
While you still want to commit these files to GitHub and therefore can’t use a
.gitignore
you can tell GitHub’s linguist which files to ignore in a.gitattributes
file
static/* linguist-vendored
This one-line file told GitHub to ignore all of my files in my
static/
folder which is where CSS and other assets are stored for a Flask app
The "Using .gitattributes
" section does illustrate how to mark wrong languages.
For instance:
Checking code you didn't write, such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language.
By default, Linguist treats all of the paths defined invendor.yml
as vendored and therefore doesn't include them in the language statistics for a repository.Use the linguist-vendored attribute to vendor or un-vendor paths.
$ cat .gitattributes
special-vendored-path/* linguist-vendored
jquery.js linguist-vendored=false
To make it simple, let me share my steps:
Change directory to your project root folder;
Create a file named .gitattributes using whatever tools of your choice:
touch .gitattributes
Edit the file by following the Linguist library instructions to tell GitHub how to do it, for example:
vi .gitattributes
Using linguist-vendored can let GitHub know to "skip" detection for this folder and sub-folders:
src/main/resources/static/* linguist-vendored
Use the linguist-documentation attribute to mark or unmark paths as documentation:
project-docs/* linguist-documentation
OR mark an individual file containing documentation
documented_code.rb linguist-documentation=true
This is a bit weird, but you can do also -- to tell GitHub to treat some files with a specific extension (e.g., *.rb) as Java:
*.rb linguist-language=Java
Git add, commit and then push it to GitHub. The label will be corrected almost immediately.
Replace your .gitattributes with this, which reclassifies all files as Java.
*.* linguist-language=Java
linguist
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With