Working on the same repository and merging changes
When several developers are working on the same repository from different application servers all commits should be made to a development/feature branch. Each developer should push changes to their own development/feature branch.
Commits can be made to the master/main branch but should only be done so when the database has been synced with the most recent commit on the main/master branch.
In general, a commit should not be pushed to a branch when the database is not synced with the most recent commit for that branch. Trying to commit to a branch when the database is not synced with the most recent commit for that branch will display a warning.
![development package merge notinsync](_images/development-package-merge-notinsync.png)
If the repository doesn’t contain a branch which is in sync with the database, you can create a new branch and base the branch of the last commit the database was synced with.
![development package merge newbranch](_images/development-package-merge-newbranch.png)
Changes can then safely be pushed to the new branch.
Merging
When it is time to merge changes from a feature or development branch with the master/main or other branch, it must be done outside of Neptune DXP using git.