Git
Jump to navigation
Jump to search
todo
git symlinks[edit]
git configuration file ~/.gitconfig :
[core] symlinks = false
symlinks = false
is more secure:
Use:
- Developers: Are more likely to use
symlinks = false
in~/.gitconfig
. - Users that build from source code: Are more likely to not use any
~/.gitconfig
file, therefore using git's defaultsymlinks = true
.
When not using symlinks = false
:
find "." -type l -not -iwholename '*.git*'
will not detect these files as symlinks.- These are detected as file without newline at the of file. Example:
- file qubes/qubes-template-whonix/whonix-workstation
qubes/qubes-template-whonix/whonix-workstation: ASCII text, with no line terminators
When using symlinks = false
:
find "." -type l -not -iwholename '*.git*'
will detect these files as symlinks.- These are detected as symlink. Example:
- file qubes/qubes-template-whonix/whonix-workstation
qubes/qubes-template-whonix/whonix-workstation: symbolic link to whonix-gateway
Potential issues:
- A text file versus a symbolic link can cause different build results depending on git settings, leading to bugs and/or package reproducibility issues.
- Git will translate symlink replacement text files back into symlinks when committing and pushing, meaning if you attempt to change a symlink to a real file, people who pull the repo will get a dangling symlink pointing to a very strange filename rather than getting a normal file with contents.
Footnotes[edit]

We believe security software like Kicksecure needs to remain Open Source and independent. Would you help sustain and grow the project? Learn more about our 13 year success story and maybe DONATE!