I am using Git/GitHub for version control. I develop locally commit/push to GitHub and pull from GitHub to my staging site. I have W3 Total Cache setup and Amazon CloudFront as a CDN. Since setting up the CDN, I have noticed that when I try to do a git pull to my staging site to fetch an update that I made locally, it's no longer populating. Does the CDN need to be purged every time I make an update like this? Do I need to start concatenating a timestamp to the end of my CSS and JS?
Yes, CloudFront objects need to be purged every time you make an update. It is not practical when using CloudFront (or any CDN), though. So, as you mentioned already in the next question, you can add timestamp to your CSS and JS.