I have a project structure similar to the below. Each project has a descriptor file that mentions which version of the project should be deployed to the remote server. The project zips are already hosted in a nexus server.
➜ abc_env_descriptor git:(master) tree
.
├── abc_project1
│ └── descriptor.txt
├── abc_project2
│ └── descriptor.txt
└── abc_project3
└── descriptor.txt
I will be maintaining these descriptor files in GitHub. If I make changes to these files via a commit, I want the configured Jenkins job to detect only the changed descriptor files and then pulling the project zip from the relevant nexus repo and apply it to the remote server. Are there any plugins or example scripts for Jenkins that will help detect the changed files?

If you just want to see the list of files modified by the latest commit :
If you want to list files modified with respect to the version in production, you have to choose a way to identify the commit that represents "the prduction version" :
prod/currenttag in your repositorycurl <remoteserver> get_versionorssh <remoteserver> "cat current_version"from your Jenkins jobOnce you have a way to identify that commit, replace
HEAD^with that commit :