It seems that both you and others based their work on the code that you have as the root commit in your repository. So right now you have this:
A - B - C - D (master)
Another developer work is also based on commit A. So, the right place to fix it is disconnected from A.
Start by creating and checking the branch there: git checkout -b his_work <SHA1 of A>(or in gitk, just right-click on the commit and select create branch).
Then, reset it to work and lock it. To be enjoyable, you can do this with help git commit --author="His Name <his.email@somewhere>"to show that it was his job.
Now, check your master ( git checkout master) and merge its branch ( git merge his_work).
In the end, you should:
A - B - C - D - E (master)
\ /
X -----------
(his_work)
Just to explain, here is what you did:
A - B - C - D - X (his_work)
(master) ---->
, ; : , , .