Set up a Git repository
When you clone an existing Git repository, or put an existing project under Git version control, DataGrip automatically detects if Git is installed on your computer. If the IDE can't locate a Git executable, it suggests downloading it.
DataGrip supports Git from the Windows Subsystem for Linux 2 (WSL2), which is available in Windows 10 version 2004.
If Git is not installed on Windows, DataGrip searches for Git in WSL and uses it from there. Also, DataGrip automatically switches to Git from WSL for projects that are opened when you use the \\wsl$ path.
If you need to manually configure DataGrip to use Git from WSL, go to the Version Control | Git page of the IDE settings Ctrl+Alt+S, click the Browse icon in the Path to Git executable field and select Git from WSL via the
\wsl$ path, for example,
Create a project by checking out and attaching directories from a remote host (clone)
DataGrip allows you to check out (in Git terms clone) an existing repository and create a new project with the data you've downloaded. The new project will have the downloaded data available as attached directories in the Files tool window
From the main menu, select Get from VCS on the Welcome screen., or, if the project does not have a directory under Git version control attached, select . If no project is currently opened, click
In the Get from Version Control dialog, specify the URL of the remote repository you want to clone, or select one of the VCS hosting services on the left.
If you are already logged in to the selected hosting service, completion will suggest the list of available repositories that you can clone.
Click Clone. In the project security dialog, select the way you want to open the project.
Put an existing directory under Git version control
You can create a local Git repository based on the existing directory.
Associate the attached directory with a Git repository
In the Files tool window, select the attached directory that you want to put under Git.
Press Alt+` to open the VCS Operations Popup and select Enable Version Control Integration.
Alternatively, from the main menu, select.
Choose Git as the version control system and click OK.
After VCS integration is enabled, DataGrip will ask you whether you want to share project settings files via VCS. You can choose Always Add to synchronize project settings with other repository users who work with DataGrip.
Associate a attached directory with a Git repository
In the Files tool window, select the directory that you want to put under Git.
From the main menu, choose.
In the dialog that opens, specify the directory where a new Git repository will be created.
After you have initialized a Git repository for your directory, you need to add files to the repository.
Add files to the local repository
In the Commit tool window Alt+0, expand the Unversioned Files node.
Select the files you want to add to Git or the entire changelist and press Ctrl+Alt+A or choose Add to VCS from the context menu.
You can also add files to your local Git repository from the Files tool window: select the files you want to add, and press Ctrl+Alt+A or choose Git | Add from the context menu.
When Git integration is enabled in your attached directory, DataGrip suggests adding each newly created file under Git, even if it was added from outside DataGrip. You can change this behavior in the Version Control | Confirmation page of the IDE settings Ctrl+Alt+S. If you want certain files to always remain unversioned, you can ignore them.
Exclude files from version control (ignore)
Sometimes you may need to leave certain files unversioned. These can be VCS administration files, artifacts of utilities, backup copies, and so on. You can ignore files through DataGrip, and the IDE will not suggest adding them to Git and will highlight them as ignored.
You can only ignore unversioned files, that is files that you see in the Unversioned Files changelist. If a file is added to Git but not committed, you can right-click it in the Local Changes view and choose Rollback.
Git lets you list ignored file patterns in two kinds of configuration files:
Patterns listed in this file only apply to the local copy of the repository.
This file is created automatically when you initialize or check out a Git repository.
One or more .gitignore files in the VCS root directory and its subdirectories.
These files are checked into the repository so that the ignore patterns in them are available to the entire team. Therefore, it is a most common place to store the ignored file patterns.
If there is no .gitignore file in the VCS root directory, you can right-click anywhere in the Files tool window, choose and type .gitignore in the New File dialog.
Add files to .gitignore or .git/info/exclude
Decide what kind of Git configuration file you are going to use to ignore files. If in doubt, use .gitignore.
Locate the unversioned file or folder you want to ignore in the Local Changes view or in Files tool window. File colors in these views help you identify the status of the file.
Right click the selection and choose Git | Add to .gitignore or Git | Add to .git/info/exclude.
File colors in these views help you identify the status of the file.
If you need to exclude files by a certain pattern, or files of a certain type, you can edit the
.git/info/exclude file directly. See .gitignore patterns format.
Check the attached directory status
DataGrip allows you to check the status of your local working copy compared to the repository version of the directory. It uses specific colors to let you see which files have been modified, which new files have been added to the VCS, and which files are not being tracked by Git.
Open the Local Changes view.
The Changes changelist shows all files that have been modified since you last synchronized with the remote repository (highlighted in blue), and all new files that have been added to the VCS but have not been committed yet (highlighted in green).
The Unversioned Files changelist shows all files that have been added to your attached directory, but that are not being tracked by Git.
For more info on changelists, see Group changes into different changelists.
Track changes to a file in the editor
You can also track changes to a file as you modify it in the editor. All changes are highlighted with change markers that appear in the gutter next to the modified lines, and show the type of changes introduced since you last synchronized with the repository. When you commit changes to the repository, change markers disappear.
The changes you introduce to the text are color-coded:
You can manage changes using a toolbar that appears when you hover the mouse cursor over a change marker and then click it. The toolbar is displayed together with a frame showing the previous contents of the modified line:
You can roll back changes by clicking and explore the differences between the current and the repository version of the current line by clicking .
Instead of reverting the whole file, you can copy any part of the contents of this popup and paste it into the editor.
Add a remote repository
If you created a Git repository based on local sources, you need to add a remote repository to be able to collaborate on your Git project, as well as to eliminate the risks of storing all of your codebase locally. You push changes to a remote repository when you need to share your work and pull data from it to integrate changes made by other contributors into your local repository version.
If you have cloned a remote Git repository, for example from GitHub, the remote is configured automatically and you do not have to specify it when you want to sync with it. The default name Git gives to the remote you've cloned from is origin.
Define a remote
Invoke the Push dialog when you are ready to push your commits by selecting from the main menu, or press Ctrl+Shift+K.
In the dialog that opens, specify the remote name and the URL where it will be hosted, and click OK.
Add a second remote
In some cases, you also need to add a second remote repository. This may be useful, for example, if you have cloned a repository that you do not have write access to, and you are going to push changes to your own fork of the original project. Another common scenario is that you have cloned your own repository that is somebody else's project fork, and you need to synchronize with the original project and fetch changes from it.
From the main menu, choose Git Remotes dialog will open.. The
Click the Add button on the toolbar or press Alt+Insert.
In the dialog that opens, specify the remote name and URL and click OK.
To edit a remote (for example, to change the name of the original project that you have cloned), right-click the remote branch in the Branches pane of the Git Log tool window, and select Edit Remote from the context menu.
You can also edit a remote from the Push Dialog by clicking its name.
To remove a repository that is no longer valid, right-click it in the Branches pane of the Git Log tool window, and select Remove Remote from the context menu.