sdanzig
Git provides you with the same functionality. The only difference is the intermediate "staging" step. If you want, you can edit Z (initial changes), stage it, then work on Z more (second changes). You can then commit only your initial changes to Z. The second changes to Z haven't been staged yet. Or, you can restage Z, and commit all the changes to Z at once.