With Observable notebooks we're trying to expand the boundaries of how live, networked and interactive a notebook can be. So, to that end, the notebook is the editor, visualizations update reactively with your changes to the code just as they would update to changes in the data, you can inspect and autocomplete actual values flowing through your program, and you can fork someone else's notebook or merge their changes with a single click.
There's built-in history too (live, every version reproducible), as seen in 15 seconds with an animated gif here: https://observablehq.com/@observablehq/history
In the future, we're thinking about working on APIs for better git and generic text editor integration; but for the reasons listed above, the primary focus for now is on making working directly in a notebook on the web the best experience possible.