You can use submodule for code of library you are using , so will be able to have 2 brunches in this submodule (Version 1.0 and Version 2.0) and use master branch for your code. In such case when your changes will be done you will be able to easily provide them with both Version 1.0 and Version 2.0 just by switching branch in submodule
code example
cd /path/to/project/
mv lib /some/other/location/
git rm lib
git commit -m'move lib to submodule'
cd /some/other/location/lib
git init
git add .
git commit
cd /path/to/project/
git submodule add /some/other/location/lib
git commit -m'add submodule'
cd /some/other/location/lib
git checkout -b version2
do some modifications
git commit -m'version2'
cd /path/to/project/lib
git fetch --all
now you can simply switch between version1 and version2 by
cd /path/to/project/lib
git checkout version2
git checkout master
another variant using rebase (not recommended). lets say you have muster branch with version1 of you lib
git checkout -b version2
apply changes in you lib wich will bring it to version 2.
git commit
git checkout master
now do your work in master (commit something). To see your master changes in version2 branch do
git checkout version2
git rebase master