Using these simple techniques for seeing how a new hair colour would work
Open your image. Start by adding a new blank layer by clicking on the Create A New Layer button in the Layers palette. You can also do this by pressing the shortcut keys Cmd/Ctrl+Shift+N and then hitting OK in the pop-up dialog box.
Change this layer’s blend mode from Normal to Soft Light in the Layers palette. The image won’t look any different right now because there are no pixels on the layer to blend in. As soon as pixels are added, they will blend with the Background layer.
Click on the Foreground colour swatch (found at the base of the Toolbar). Inside the Colour Picker menu, change the colour to #412303, a dark brown, for the new colour.
Head to your Brush tool (press B to quickly select it), and Ctrl/right-click anywhere on the image to open your Brush options. Reduce the Hardness value to 20% and also set Size to 150px, making it just right for covering the hair.
Carefully paint over the model’s hair to see a change. Don’t worry about being precise with the tool; if you happen to paint over anything you shouldn’t, simply use the Eraser tool (E) at 50% Hardness to carefully go around the edges and tidy things up.
The new colour may appear a little golden at this stage, so add the Colour Balance adjustment by going to Layer>New Adjustment Layer>Colour Balance. In the dialog, tick the option that says ‘Use Previous Layer to Create Clipping Mask’. Now hit OK to add the Adjustment to the Layer Stack.
Inside the Adjustment’s settings, make sure that the Midtones range is selected, shown above the sliders. Change Cyan/Red to -100, Magenta/Green to -100 and Yellow/Blue to 90. After that, you should see the hair look a much more natural shade of brown, but of course these settings will depend on the shade you’re going for! Your best bet is to tweak the final values by eye.