Commit Changes dialog
Use this dialog to commit (check in) local changes to the repository and, optionally, to create a patch file.
![Git commit dialog Git commit dialog](https://resources.jetbrains.com/help/img/idea/2024.2/cl_commit_dialog_overview.png)
The options available in this dialog depend on the version control system you are using.
Modified files pane
This section lists all files that have been modified since the last commit. Deselect the check-boxes next to the files that you want to exclude from the current commit.
Modified files pane toolbar
Item | Tooltip and Shortcut | Description |
---|---|---|
Show Differences Ctrl+D | Open the Differences dialog that highlights the differences between your local working copy of the selected file and its repository version. | |
Revert | Revert all changes made to the local working copy of the selected files. | |
Refresh Changes Ctrl+F5 | Click this button to reload the Changed files tree view so it is up-to-date. | |
Group By | Choose how you want to group the modified files - by directory or module | |
Expand or collapse all nodes Ctrl+NumPad + Ctrl+NumPad - | Click these buttons to expand or collapse all nodes in the directory tree. These buttons are not available in flat view. | |
Changelist | N/A | From this list, select the changelist that contains the modified files to be checked in or included in the patch. The active changelist is selected by default. |
The summary under the modified files pane shows statistics on the currently selected changelist, such as the number of modified, new, deleted and unversioned files. This area also shows how many files of each type are shown, and how many of them will be committed.
Commit Message pane
In this area, enter a comment to the current commit. You cannot commit your changes until you enter some description in the Commit Message field.
This comment will also be used as the name of the patch file if you decide to create a patch.
You can click Commit Message history Ctrl+M to choose from the list of recent commit messages.
VCS-specific controls
The controls in this section are located in the top-right part of the dialog, and contain the options that are specific for the version control system you are using.
Item | Description |
---|---|
Author | Use this list to select the author of the changes that you are going to commit. This may be useful when you are committing changes made by another person. |
Amend commit | Select this checkbox to replace the previous commit with the current changes. For more information, refer to Git Basics: Undoing Things. |
Sign-off commit | select if you want to sign off your commit to certify that the changes you are about to check in have been made by you, or that you take the responsibility for the code you're committing. When this option is enabled, the following line is automatically added at the end of the commit message: Signed off by: <username> |
Item | Description |
---|---|
Amend commit | Select this checkbox to replace the previous commit with the current changes. For more information, refer to Git Basics: Undoing Things. |
Item | Description |
---|---|
Keep files locked | Select this checkbox to keep the changed files locked after they are checked in. |
Item | Description |
---|---|
Jobs | This area is available only if you select the Enable Perforce Jobs Support checkbox on the Perforce settings page. Use the controls in this area to search for Perforce jobs, link jobs to the selected changelist, and detach the currently linked jobs.
The list in the bottom of the area displays the jobs that are currently attached to the selected changelist. |
Submit / Commit section
Use the controls in this area to define which additional actions you want CLion to perform while committing the selected files.
These controls are available for the following version control systems:
Git
Subversion
Perforce
Item | Description |
---|---|
Reformat code | Perform code formatting according to the Project Code Style settings. |
Rearrange code | Rearrange your code according to the arrangement rules preferences. |
Optimize imports | Remove redundant import statements. |
Analyze code | Analyze modified files while committing them. Click Configure to select an inspection profile from which the IDE will run inspections. |
Check TODO (<filter name>) | Review the TODO items matching the specified filter. Click Configure to choose an existing TODO filter, or open the TODO settings page and define a new filter to be applied. |
Cleanup | Automatically apply the current inspection profile to the files you are going to commit/shelve. |
After Submit / After Commit section
Use the controls in this area to define which additional actions you want CLion to perform after committing the selected files.
Item | Description | Available for |
---|---|---|
Run tool | From this list, select the external tool that you want CLion to launch after the selected changes have been committed. You can select a tool from the list, or click the Browse button | All VCSs |
Upload files to | From this list, select the server access configuration or a server group to use for uploading the committed files to a local or remote host, a mounted disk, or a directory.
The list is only available if the FTP/SFTP/WebDAV Connectivity plugin is enabled. | All VCSs |
Always use selected server or group of servers | Select this checkbox to always upload files to the selected server or a server group. The checkbox is only available if the FTP/SFTP/WebDAV Connectivity plugin is enabled. | All VCSs |
Auto-update after commit | Select this checkbox to automatically update your project after the commit. Enabling this option will help prevent your working copy against the mixed-revision state. The mixed-revision state of a working copy may affect the Move and Rename refactoring applied to folders, in which case items in revisions different from the moved subtree root will be tracked separately, which can be confusing. When the Auto-update after commit option is enabled:
| Subversion |
Diff pane
To open the Diff pane, press Ctrl+D or right-click the file you want to investigate and select Show Diff in the context menu.
In this pane you can explore the differences between the base repository version of the selected file, and the version you are about to commit.
Diff pane toolbar
Item | Tooltip and Shortcut | Description |
---|---|---|
| Previous Difference / Next Difference Shift+F7 F7 | Jump to the next or previous difference. When the last or the first difference is reached, CLion suggests clicking the arrow buttons or pressing F7/Shift+F7 once more and comparing other files modified locally. This behavior depends on the Go to the next file after reaching last change option in the Diff Viewer settings. |
Jump to Source F4 | Open the selected file in the editor. The caret is placed in the same position as in the Diff Viewer. | |
Compare Previous/Next File Alt+Left Alt+Right | Click these buttons to compare the local copy of the previous/next file with its update from the server. | |
Viewers | Select a viewer mode: side-by-side or unified. The side-by-side mode has two panels, and the unified mode has one panel. You can edit code and perform the Accept, Append, Revert actions in both viewers. You can change text only in the right-hand part of the side-by-side viewer or in the lower line in the unified viewer. You can edit only local versions of your files. You cannot edit files that have read-only status. | |
Whitespace | Define how the Diff Viewer should treat whitespaces.
| |
Highlighting mode | Select the way differences granularity is highlighted. The available options are:
| |
Collapse Unchanged Fragments | Collapse all the unchanged fragments in both files. The amount of non-collapsible unchanged lines is configurable on the Diff & Merge settings page. To open the Diff & Merge page, open settings by pressing Ctrl+Alt+S and navigate to . . | |
Synchronize scrolling | Scroll both differences panes simultaneously. If this button is released, each pane can be scrolled independently. | |
Disable editing | Enable editing of the local copy of the selected file, which is disabled by default. When editing is enabled, you can make last-minute changes to the modified file before committing it. | |
Editor settings | Open a list of available options. Select or clear these options to show or hide line numbers, indentation guides, white spaces, and soft wraps. | |
Help F1 | Open a browser and show the corresponding help page. |
Note that the options listed above are available for text files only. CLion cannot compare binary files, so most commands will be unavailable for them.
Submit / Commit button
Click this button to commit the selected files, or hover over this button to display one of the following available commit options:
Commit and Push: select this option to push the changes to the remote repository immediately after the commit. This option is available if you are using Git or Mercurial as a version control system.
Create MQ Patch: select this option to create an MQ patch based on your changes. This option is only available if you are using Mercurial as a version control system.
Create Patch: select this option if you want CLion to generate a patch based on the changes you are about to commit. In the Create Patch dialog that opens, type the name of the patch file and specify whether you need a reverse patch.
Remote Run: select this option to run your personal build. This option is only available when you are logged in to TeamCity. For more information, refer to TeamCity plugin documentation.