Why is sourceTree showing changes when there are none?

SourceTree is consistently incorrect with regard to my working copy changes.

Cygwin will correctly show: "nothing to commit (working directory clean)"

But SourceTree will show seemingly random files (sometimes they are my last commited files) as modified, with mode 100755 -> 100644.

Is sourcetree attempting to change the modes of these files itself? Why? Stop it.

How do I get sourcetree to not be annoying?


-The guy who reverted back to CLI, despite sourcetree's pretty git commit history graphics, because it does too many magics that break stuff.

4 answers

From my experience, Git doesn't pay attention to file permissions on the working copy. You have to explicitly modify permissions on the index, which is annoying if you have shell scripts in version control that need the executable bit set.

It's possible that SourceTree has a "feature" to detect permissions changes on the working copy and make the index changes for you as though they are a standard commit.

100755 -> 100644 implies that the executable bit has been un-set. This seems possible to be the behavior of your editor, combined with the fact that Git CLI ignores that particular type of change.

Of course, I use SourceTree on windows, so my file permissions system is not translatable to *nix permission bits, so I can't have this problem. It could be SourceTree, I suppose.

It appears that git actually recognizes these changes by default(core.fileMode=true) - https://www.kernel.org/pub/software/scm/git/docs/v1.7.10.1/git-config.html

However, the documentation states that cloning or init-ing a repo can cause it to set core.fileMode to false.. but not exactly under what circumstances it makes this change.

I'll have to double check and see what my git config looks like for that project tomorrow..

+1 git config core.fileMode false

This didn't actually change my git status output from the command line, but did change the results in sourcetree

It looks like I found a way to fix this problem: go to Tools -> Options -> Git -> press Use System Git. Upon refresh, SourceTree no longer showed the files in question as changed.

Sometime SourceTree detects changes when there are space blanks (ejem: indentation spaces), but does not display the change log, only just send alert that there are changes.


Yes, this is expected behavior if you have your diff options set to "Ignore Whitespace".

SourceTree still shows me files with that message, those files have not been changed.

For example: My LESS files are compiled to CSS, even if they are just recompiled, sourceTree still shows them to me.

We need an option to hide those files if no changes have been detected.

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published May 30, 2018 in Sourcetree

Tip from the team: configuring Git or Mercurial in Sourcetree

Supported Platforms macOS Windows To make using Sourcetree as simple yet powerful as possible we embed (bundle) dependencies such as Git, Git LFS, and Mercurial. We strive to keep these...

551 views 1 2
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you