git merge driver for automatically merging lockfiles
npm install npm-merge-driver    
To start using it right away:
```
$ npx npm-merge-driver install --global
Or install it locally, per-project:
``
$ cd /path/to/git/repository
$ npx npm-merge-driver install
...And you're good to go!
Next time your lockfile has a conflict, it will be automatically fixed. You
don't need to do anything else.
`
$ npx npm-merge-driver install
$ git merge my-conflicting-branch
npm WARN conflict A git conflict was detected in package-lock.json. Attempting to auto-resolve.
added 1 package in 0.077s
Auto-merging package-lock.json
Merge made by the 'recursive' strategy.
package-lock.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
$ git status
`
The following section is only for advanced configuration of the driver if you
have specific needs.
#### Setup Options
npm-merge-driver install supports a couple of config options:
--driver - string to install as the driver in the git configuration
--driver-name - string to use as the merge driver name in your configuration
--files - list of files that will trigger this driver
--no-legacy - disables retrying legacy commands on error
#### Merge Options
npm-merge-driver merge can also be configured:
-c, --command - command to execute when a lockfile is conflicted
--no-legacy - disables retrying legacy commands on error
#### Install as Dependency
To avoid regular npx installs, consider installing the driver:
$ npm install [-g|--save-dev] npm-merge-driver
#### Manual Setup (advanced):
npm-merge-driver requires two git configurations to work: a git configuration.git/config
to add the driver to git, which is by default your local file, andgitattributes(5)
a configuration, which is by default your local.git/info/attributes.
If you do not want npm-merge-driver to install itself for you:
Add the driver to .git/config:``
$ git config merge."npm-merge-driver".name \
"Automatically merge npm lockfiles"
$ git config merge."npm-merge-driver".driver \
"npx npm-merge-driver merge %A %O %B %P"
Add the relevant attributes to .gitattributes or .git/info/attributes:``
package-lock.json merge=npm-merge-driver
npm-shrinkwrap.json merge=npm-merge-driver
#### Using with other package managers
npm-merge-driver can be used with package managers other than npm! It's a bit
more verbose, but works just as well, assuming the package manager has a command
that can automatically resolve merge conflicts in its lockfile:
``
$ npx npm-merge-driver install \
--driver-name yarn-merge-driver \
--driver "npx npm-merge-driver merge %A %O %B %P -c yarn" \
--files yarn.lock
...and now, any time yarn.lock has a conflict, it will be automaticallyyarn
resolved without you having to manually run .
#### Uninstalling
To remove an installed merge driver, use npm-merge-driver uninstall:
``
$ npx npm-merge-driver uninstall [--global] [--driver-name=npm-merge-driver]
Written by Kat Marchan
Please file any relevant issues on Github.
This work is released under the terms of the ISC license. See LICENSE.md for details.
* git-config(1)gitattributes(5)`
*