DEV Community

Cover image for Automatic Git Commit and Push on Save using PHPStorm
Luis Juarez
Luis Juarez

Posted on • Updated on

Automatic Git Commit and Push on Save using PHPStorm

To set up PhpStorm to automatically make a Git commit and push when saving files, you can use a combination of PhpStorm's file watchers and Git integration. Here's a step-by-step guide:

Note: If you already have Git setup, you can skip to step 3.

1. Install Git:

If you haven't already, make sure Git is installed on your system and properly configured.

  1. Enable Git integration in PhpStorm:
    • Open your project in PhpStorm.
    • Go to File -> Settings (or PhpStorm -> Preferences on macOS) to open the Settings dialog.
    • In the left pane, navigate to Version Control -> Git.
    • Click the "+" button to add your Git executable path. If Git is already installed and in your system's PATH variable, PhpStorm should auto-detect it. Otherwise, you'll need to provide the path manually.
    • Click "Test" to verify that PhpStorm can locate the Git executable.

3. Configure File Watcher:

  • In the Settings dialog, go to Tools -> File Watchers.
  • Click the "+" button to add a new file watcher.
  • Choose "Custom" from the list of available file watchers.
  1. Configure the file watcher settings:

    • Name: Give your file watcher a descriptive name (e.g., "Git Commit and Push").
    • File Type: Select the specific file types or patterns you want to trigger the Git commit and push action. For example, "*.php" to target PHP files.
    • Scope: Choose the appropriate scope for your project files. I use a project folder and have everything within that push to my repository.
    • Program: Set the path to the Git executable (already configured in step 2).
    • Arguments: Enter the arguments to execute the Git commands. You can use the following template: ```

    commit -am "Auto-commit on save" && push

   - Working Directory: Set the working directory to `$ProjectFileDir$`.
   - Output paths to refresh: Add the path to the file(s) you want to refresh after the commit and push. For example, I use `$ProjectFileDir$`.

5. Enable the file watcher:
   - Check the "Auto-save edited files to trigger the watcher" option.
   - Ensure that the file watcher is enabled by checking the box next to its name.

6. Apply and save the changes:
   - Click "Apply" and then "OK" to save the settings.

Now, whenever you save a file that matches the configured file type or pattern, PhpStorm will automatically trigger the file watcher, which will perform a Git commit and push using the specified Git executable and arguments. The output paths you specified will also be refreshed, ensuring the latest changes are visible in PhpStorm.

##Here is what my File Watcher settings look like:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q11hyi7d01aliwnyns8a.png)

Note: Be cautious when setting up automatic commit and push actions on save, as it may lead to unintended commits. It's a good practice to review the changes before committing and pushing to ensure the quality and correctness of your code.

So there you have it! Personally I use two separate file watchers, one for committing, and a separate one for pushing. They both run on save, but this enables more control over the advanced settings such as "Trigger regardless of syntax errors" - where my commit will happen, but it won't push if there are errors. I leave that as an exercise for the reader. If you have any questions, please feel free to drop a comment below! Thanks for reading!
Enter fullscreen mode Exit fullscreen mode

Top comments (3)

Collapse
 
leandro_nnz profile image
Leandro Nuñez

Hi. Title should clarify it’s only with phpstorm. Thanks

Collapse
 
iamluisj profile image
Luis Juarez

Thank you for the feedback! Clarified the title.

Collapse
 
leandro_nnz profile image
Leandro Nuñez

Thanks!