SourceTree commits with a different author name and email
Asked by Ali Elshishini:

When I Commit from SourceTree it commits   
With an Author and Email different from what I have configured   

Because I dont want to share my actual Email I will use an example that is identical   

Lets say I have configured git as follows

git config --global user.name "Doe"  
git config --global user.email johnseDoe@example.com  

<br />

When I commit from the command line or GitHub Desktop   
The commits are assigned to the correct Author Name and Email exactly as Configured  

When I commit from SoureTree, it commits as   
"John Doe" and johnseDoe@exampleinc.com  

So it changes the spelling of my Author Name and the Email Domain of my email, by adding INC  

Now what is also weird, is that everywhere in SourceTree it only have the correct the one  
Even in the commit section  

I dont know what drive SourceTree to modify them the mometn it commits   
I googled this extensively   
I uninstalled SourceTree, deleted all the folders for Atlassian and SourceTree from the user folder (before reinstalling), I checked all the setting   

Somehow SourceTree still manage to remember the wrong Author Name and Email   

This is driving me a bit crazy, I tried everything I found online, nothing work, this is probably a deep bug in sourcetree  
And it is concerning, since I dont know how else SourceTree could be changing things behind my back


Answers:
author: Ali Elshishini
body: I figured out what the issue, possibly a bug, was exactly   

1. My HOMEDRIVE environment variable, points to network drive  
2. If I am connected to the work network, .gitconfig gets created under my HOMEDRIVE env variable location  
3. If I am working offline (i.e. not connected to work network) my .gitconfig get created is the folder from the USERPROFILE env variable   
4. If you try to commit while a .gitconfig is missing, git will still commit and give you this warning " ... Your name and email address were configured automatically based on your username and hostname. ...."  
5. The issue with ST is that the command line and all the tools were able to read from the .gitconfig under my USERPROFILE folder, while I am offline, only ST would treat it as missing   
6. What is even weirder, is that every else in ST like in options screens and changes screen, ST was able to read it fine, only while commiting would it behave like the file is completely missing   

*** ** * ** ***

<br />

So the best solution i found which seem to fix all, was to set the env variable  
GIT_CONFIG_GLOBAL to point to the .gitconfig under USERPOFILE   

*** ** * ** ***

\[System.Environment\]::SetEnvironmentVariable('GIT_CONFIG_GLOBAL', $env:USERPROFILE + '\\.gitconfig', 'User')

*** ** * ** ***

<br />

This way all the tools all the time will use this .gitconfig


author: Ali Elshishini
body: Hi   

I fixed the issue above, but unfortunately, I am not sure exactly how  
but for future users

do two things  

<br />

1. run this command to find where you .gitconfig is stored

git config --global user.email

<br />

This will show you where the global config file is, in my case it was on a network drive   
I am guessing because it was on a network drive sourcetree was using some cache values   
but this is a guess , i cannot confirm it  

<br />

2. go to the setting button in top right corner, go to advanced, check and uncheck the use the use global user setting   

Anyway, I ended up uninstalling and re-installing git (and sourcetree)   
So what either that, or playing with the setting button cleared the cached value, wherever it was   

So again, I fixed my issue, but sadly, I am not 100% sure what fixed it   
all other tools were working fine, only sourcetree was giving me this issue  
and I still have no clue where it was caching those different values it was using for the commits