Note: GitHub sync and direct git are only available with paid plans on Overleaf v2. The git integration in Overleaf v1 was a free feature during its long beta period, and we will continue to offer it for free to all users with Overleaf v1 accounts. For users who signed up after Overleaf v2 was out of beta, GitHub sync and direct are only available on our paid plans, like on ShareLaTeX. As with many other v2 features, this means that the owner of the project will need a paid subscription in order to connect their project with GitHub or enable direct git access, but their collaborators can use the integration with free accounts.
Note: if you do not have a local repo on your machine yet, and wish to clone an Overleaf project down to your local machine as a new repo, please see this blog post for details.
If you have an existing repository, you can add Overleaf as a remote, just like you would for GitHub or BitBucket. There are a few commands below that you'll need to run to get things started.
To start with, we assume that you have git repo on your computer. (It might also be hosted on github or bitbucket, etc., but you need to have it cloned locally, too).
On Overleaf v2 you can find it by clicking on the Overleaf menu icon above the file list panel, and then on Git:
$ cd my-paper $ git remote add overleaf https://git.overleaf.com/5b98bfbf54474d00010421b1
(Be sure to use your own link, not the example link.)
If using git 2.9 or later, use the commands:
$ git checkout master $ git pull overleaf master --allow-unrelated-histories
In earlier versions of git:
$ git checkout master $ git pull overleaf master
This will create a merge commit that pulls the blank project from Overleaf into your project.
$ git revert --mainline 1 HEAD
$ git push overleaf master
At present the online edits aren't saved in the git logs every time you make an edit online. The git bridge works this way: when we get a pull or fetch request, the git bridge copies the latest content from Overleaf to a git repo maintained by the git bridge, and then we commit it. In other words, a git commit is generated whenever a user git-pulls or fetches from the project. If you save a version via the History and Revisions menu, and then you do a git pull, the saved version will become a commit in the repository’s git history.
On Overleaf v2, the git remote format has changed, compared to Overleaf v1. You can find the new git remote for your project by opening the project, going to the Menu in the top left, and choosing Git from the Sync section. You will need to move projects from Overleaf v1 to Overleaf v2 and update their git remotes and/or submodules in order to keep working on them.
Overleaf v2 also requires you to log in using your Overleaf email address and password, whereas v1 did not. Editing projects on Overleaf v2 now requires you to log in first.
img/will leave two folders in the project:
img/containing the image files, and
images/, which will be empty.This can cause problems when a user renames a folder, and creates a new file with the same name as the old folder, in one commit. The git system will reject this commits. In this case we recommend splitting the commit up into two parts, and deleting remaining folder manually from the Overleaf web interface, before pushing the commit containing the new file.