Raises an exception if there are uncommitted git changes

A sanity check to make sure you are working in a repo that is clean.
Especially useful to put at the beginning of your Fastfile in the before_all block, if some of your other actions will touch your filesystem, do things to your git repo, or just as a general reminder to save your work.
Also needed as a prerequisite for some other actions like reset_git_repo.

Supported platforms ios, android, mac
Author @lmirosevic, @antondomashnev

1 Example



Key Description Default
show_uncommitted_changes The flag whether to show uncommitted changes if the repo is dirty false
show_diff The flag whether to show the git diff if the repo is dirty false
ignored The handling mode of the ignored files. The available options are: 'traditional', 'none' (default) and 'matching'. Specifying 'none' to this parameter is the same as not specifying the parameter at all, which means that no ignored file will be used to check if the repo is dirty or not. Specifying 'traditional' or 'matching' causes some ignored files to be used to check if the repo is dirty or not (more info in the official docs: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt)
ignore_files Array of files to ignore

* = default value is dependent on the user's system

Lane Variables

Actions can communicate with each other using a shared hash lane_context, that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ]. The ensure_git_status_clean action generates the following Lane Variables:

SharedValue Description
SharedValues::GIT_REPO_WAS_CLEAN_ON_START Stores the fact that the git repo was clean at some point

To get more information check the Lanes documentation.


To show the documentation in your terminal, run

fastlane action ensure_git_status_clean


It is recommended to add the above action into your Fastfile, however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal

fastlane run ensure_git_status_clean

To pass parameters, make use of the : symbol, for example

fastlane run ensure_git_status_clean parameter1:"value1" parameter2:"value2"

It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:"1,2,3"). Hashes are not currently supported.

It is recommended to add all fastlane actions you use to your Fastfile.

Source code

This action, just like the rest of fastlane, is fully open source, view the source code on GitHub

Back to actions