Git: Difference between revisions
| (5 intermediate revisions by the same user not shown) | |||
| Line 14: | Line 14: | ||
sudo add-apt-repository ppa:git-core/ppa | sudo add-apt-repository ppa:git-core/ppa | ||
sudo apt update | sudo apt update | ||
sudo apt install git git-lfs | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 112: | Line 111: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==<code>.gitignore</code>== | ==Special Files== | ||
===<code>.gitignore</code>=== | |||
<code>.gitignore</code> is used to ignore certain files to make sure they do not get accidentally pushed to the remote git repo.<br> | <code>.gitignore</code> is used to ignore certain files to make sure they do not get accidentally pushed to the remote git repo.<br> | ||
You can find a collection of .gitignore files on [https://github.com/github/gitignore Github's gitignore repo].<br> | You can find a collection of .gitignore files on [https://github.com/github/gitignore Github's gitignore repo].<br> | ||
Or you can create a custom .gitignore file at [https://www.gitignore.io gitignore.io]. | Or you can create a custom .gitignore file at [https://www.gitignore.io gitignore.io]. | ||
==<code>.gitattributes</code>== | ===<code>.gitattributes</code>=== | ||
<code>.gitattributes</code> are used to give attributes to paths.<br> | <code>.gitattributes</code> are used to give attributes to paths.<br> | ||
They can be used to assign programming languages to filenames.<br> | They can be used to assign programming languages to filenames.<br> | ||
| Line 134: | Line 134: | ||
==Git Large File Storage (LFS)== | ==Git Large File Storage (LFS)== | ||
[https://github.com/git-lfs/git-lfs/wiki/Tutorial Reference] | [https://github.com/git-lfs/git-lfs/wiki/Tutorial Reference] | ||
* Note that Github charges for LFS so it's best to keep binary files outside of GitHub. | |||
==Sparse checkout== | |||
If you're interacting with a monorepo like [https://github.com/google-research/google-research google-research/google-research], you may be interested in git sparse checkout.<br> | |||
See [https://git-scm.com/docs/git-sparse-checkout Git - git-sparse-checkout Documentation] and [https://github.blog/2020-01-17-bring-your-monorepo-down-to-size-with-sparse-checkout/ Bring your monorepo down to size with sparse-checkout | The GitHub Blog].<br> | |||
This is a relatively new feature so be sure to use an updated version of git. | |||
<syntaxhighlight lang="bash"> | |||
git clone --no-checkout $url | |||
cd $project | |||
git sparse-checkout init | |||
git sparse-checkout add $folder | |||
</syntaxhighlight> | |||