I can tell you how I do my updates, but it is probably alot more cumbersome with unneeded stuff that what KJ is suggesting.
First, I keep my git pulls separate from my server folder.
1. Backup appropriate MySQL tables. Always do this before doing anything else. If you want a script, I have a .bat file posted here:
viewtopic.php?f=16&t=2428 It does correctly pull the appropriate tables, but make sure you put in your user name and password.
2. Zip my current server. I have had to restore my old server once, so I always keep a backup of the last working one, so when I replace, I zip up my server build.
3. Delete my Darkstar folder. I have a folder called Final Fantasy XI Server. Yes, some people on the forums here think my setup is too much, but I just prefer where my stuff is. Inside that is the darkstar folder. It is the same when you do your git pulls unless you pay attention and back the folder up once when you first clone. Inside my Final Fantasy XI folder, I have a couple of my custom LUAs that I return once I have copied over my git stuff.
4. Copy everything except the git folder from my Server Update folder (Where all the git pulls go). I never touch files in this folder. It is simply for pulling the DSP changes.
5. Copy those backed up important mySQL tables from where I put them (I have a separate folder called charbackup that I keep the last backup in) to the Final Fantasy XI server\darkstar\sql folder. Then, when you run the bat file for SQL updates listed in the wiki, (the one named DSP_Import.bat), it will just automatically put all your character data, ah data, etc, back into the table. (****Also, please note, if you use my bat file from earlier to export your important tables, do not copy the dspdb.sql to the folder. This is just in case you mess something up so you can do a full database restore, along with the full server restore with the zipped file****)
6. Open Navicat and drop dspdb. Then, I add a new database, name it dspdb, and run the DSP_Import.bat file from the wiki. It will restore all my character data and update the other tables. By the way, when you do your git pulls, check the changes, see if one of your important tables has changed. You will get to know them quite well over time (Anything with char, Account, etc).
7. I open the conf files and change as needed, updating my user name and password for my mysql and adjusting the values as I want. I also change the settings to my preference under the scripts/globals folder. For me, personally, I also go to the spells folder in the scripts/globals, and turn death.lua and doom.lua into death.lua.bak and doom.lua.bak, because I don't want those spells to be used on me since I play my server solo.
8. I open the Final Fantasy XI server\darkstar\src\map\packets\auction_house.cpp and change to 9 slots, so I have an AH storage. I haven't used it in a while though because it is a pain to get things out, since you can't see everything beyond the first 7 items. I also open Final Fantasy XI server\darkstar\src\map\utils\blueutils.cpp and change the spell learn to 9 levels instead of 7, since I am still low enough that the skill difference would make it 9 levels below my current for me to learn.
9. I rebuild my servers. Personally, I just do it with another bat file.
10. I am done. I have my own program for starting my servers and Ashita, and it hides the console windows if I want.
Anyways, there is a step by step of what I do with my server. I only have minor customization though, so it doesn't take that long and I have automated alot of it. Maybe it will give you some ideas.