Maybe you started out using the SHA1 backend, and have now configured git-annex to use SHA256. But files you added to the annex before still use the SHA1 backend. There is a simple command that can migrate that data: # git annex migrate my_cool_big_file migrate my_cool_big_file (checksum...) ok This stages a change to the file, which you can `git commit` like any other change. You can only migrate files whose content is currently available. Other files will be skipped. ## distributed migration When you pull changes into your repository that include migration of files, your repository then needs to be updated to follow the migration. # git-annex migrate --update migrate my_cool_big_file (checksum...) ok This is done automatically by commands like `git-annex pull`. ## unused old content After migrating a file to a new backend, the old content in the old backend will still be present. That is necessary because multiple files can point to the same content. The `git annex unused` subcommand can be used to clear up that detritus later. Note that hard links are used, to avoid wasting disk space.