I use this method for creating patch, hope it helps . Let suppose you will modify this file
vendor/magento/module-customer/Block/CustomerData.php
Create a copy of that file whithwith your changes on it :
vendor/magento/module-customer/Block/CustomerDataModified.php
What you need to do is run this command :
diff -u CustomerData.php CustomerDataModified.php > diff.patch Move diff.patch in your root under a directory, example Mypatches dir . Delete the file added CustomerDataModified.php since the patch is generated with the changes.
Here comes the tricky part , needs some manual modification now : When you open the diff.patch you will get something like this on the top :
--- CustomerData.php 2018-02-21 01:26:16.000000000 -0500 +++ CustomerDataModified.php 2019-01-03 03:57:47.326011737 -0500 Replace those line with this one :
diff --git a/Block/CustomerData.php b/Block/CustomerData.php index 3ee2rd..8349152 111644 --- a/Block/CustomerData.php +++ b/Block/CustomerData.php The index is needed (the numbers are generated by me random, by default are generated from git but in most cases the vendor is in .gitignore)
Next Step is modification of the composer.json in the root of your magento : Add the extra section (if you dont have one already)
"extra": { "magento-force": "override", "patches": { "magento/module-customer": { "some description abt issue applying this patch": "Mypatches/diff.patch" } } } And there you go . Your patch is diff.patch (you can call whatever you like ) . Run composer install to apply that