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 whith 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