Daily Git Workflow
This example describes a typical day using Git Connectivity in Flowable Design. It follows a modeler working on an app with a small team, illustrating the common operations you'll perform regularly.
Starting Your Day
Pull the Latest Changes
Before starting work, pull the latest changes from the remote repository to make sure you have the most recent version of all models.
- Open your app in Flowable Design.
- Check the Git panel's sync status. If it shows "Behind remote", there are new changes from your team.
- Click Pull to fetch and apply those changes.
- Review what changed by checking the commit history if needed.
This ensures you're working on the latest version and reduces the chance of conflicts later.
Making Changes
Edit Models and Track Changes
As you work throughout the day, the Git panel tracks your modifications:
- Open a model (e.g., a BPMN process) and make your changes in the editor.
- Save the model.
- The Git panel's sync status updates to show "Local changes".
- The changed models list in the Git panel shows which models you've modified.
Commit Regularly
Rather than waiting until the end of the day, commit your changes in logical units:
- Click Commit in the Git panel.
- Select the models related to a single change (e.g., "the updated approval process and its new form").
- Write a descriptive commit message:
- Good: "Add manager approval step for purchase orders over $5,000"
- Avoid: "Updated process"
- Confirm the commit.
Frequent, focused commits make it easier to understand the history, revert specific changes if needed, and resolve conflicts with teammates.
Pull Periodically
Even while working, pull periodically to stay in sync:
- Before starting a new piece of work, check for remote changes.
- If changes are available, pull them before making new modifications.
- This keeps the divergence between your local state and the remote small and manageable.
Working on a Feature
Create a Feature Branch
For larger changes that span multiple models or require review before merging:
- Click Create Branch in the Git panel.
- Name the branch descriptively (e.g.,
feature/customer-onboarding-v2). - Work on the branch, committing changes as you go.
Create a Pull Request
When the feature is ready for review:
- Ensure all changes are committed.
- Click Create PR in the Git panel.
- Select
main(or your target branch) as the merge target. - Write a title and description for the pull request.
- Review the PR preview to confirm all expected changes are included.
- Create the pull request.
- Share the PR link with your team for review.
After the PR is Merged
Once the pull request is approved and merged on GitHub/GitLab/Bitbucket:
- Switch back to the
mainbranch in the Git panel. - Pull to get the merged changes.
- Your feature is now part of the main branch.
Handling Conflicts
Resolve During Pull
If you pull and conflicts are detected:
- Design shows the conflicting models with their local and remote versions side by side.
- For each conflict, review the diff and choose which version to keep.
- Confirm the resolutions to complete the pull.
Stash Before a Risky Operation
If you're unsure whether a pull will cause conflicts:
- Stash your uncommitted changes first.
- Pull the remote changes cleanly.
- Restore the stash to reapply your changes on top of the updated state.
- Resolve any conflicts that arise during the stash restoration.
End of Day
Commit or Stash Remaining Work
Before ending your day:
- If changes are ready: Commit them with a descriptive message.
- If changes are incomplete: Either commit to a feature branch with a "WIP" prefix in the message, or stash the changes for tomorrow.
Avoid leaving uncommitted changes overnight without stashing, as pulling the next morning could lead to unexpected conflicts.
Summary of Daily Operations
| When | Action | Purpose |
|---|---|---|
| Start of day | Pull | Get latest team changes |
| During work | Edit and save models | Normal modeling work |
| After a logical change | Commit (selected models) | Track progress, share with team |
| Periodically | Pull | Stay in sync |
| For larger features | Create branch, commit, create PR | Isolated work with review |
| End of day | Commit or stash | Preserve work in progress |
