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-all
sudo apt install git git-lfs
# or 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>