Overleaf deploys Git to track collaborative modifications to projects. Moreover, a user has an option to work with Overleaf’s Git backend directly. It supports Git compatibility with some limitations: https-only, no force push. With some extra steps described below, it is possible to collaborate in development of an Overleaf paper for users working in the web-interface and in local git+pdflatex environments. The main advantages are of course a possibility to migrate an existing history of modifications to Overleaf, and an ability to manage a lot of files over the command line more efficiently.
In order to avoid repeated password typing, setup gpg password storage:
gpg --gen-key
pass init dmitry@kernelgen.org
Let’s now clone an Overleaf repository with Git to see how it is organized:
export GCM_CREDENTIAL_STORE=gpg
git clone https://git.overleaf.com/632c23013b1a4f35618b0785
Note the new Overleaf repository will always have some initial commit, and force push is disabled. Therefore, in order to push some existing git repository to Overleaf, remove the existing dummy initial content and rebase your content on top of it. Consider a repository, which already contains your work in a master branch, then:
git remote remove origin
git remote add origin https://git.overleaf.com/632c23013b1a4f35618b0785
git branch -m your_existing_work
git fetch origin master
git checkout master
git rm -rf main.tex
git commit -m "Resetting Overleaf to an empty repository"
git checkout your_existing_work
git rebase -i master
git branch -D master
git branch -m master
git push origin master
The commands above basically rename your existing master
branch to your_existing_work
, then pulls a new master
branch from Overleaf. Then we reset the state of the Overleaf’s master
, and rebase your_existing_work
over it. Finally, the master
branch is deleted, your_existing_work
is renamed back to master
and pushed to Overleaf.
Dmitry Mikushin
If you need help with Machine Learning, Computer Vision or with GPU computing in general, please reach out to us at Applied Parallel Computing LLC.