Skip to content

Instantly share code, notes, and snippets.

@EliahKagan
Last active June 25, 2024 17:42
Show Gist options
  • Save EliahKagan/590972953431a604cc574ced3e3fb789 to your computer and use it in GitHub Desktop.
Save EliahKagan/590972953431a604cc574ced3e3fb789 to your computer and use it in GitHub Desktop.
Git for Windows file/directory symlink experiments
C:\Users\ek\source\repos> mkdir are-symlinks-linearized
Directory: C:\Users\ek\source\repos
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 6/23/2024 8:15 PM are-symlinks-linearized
C:\Users\ek\source\repos> cd are-symlinks-linearized
C:\Users\ek\source\repos\are-symlinks-linearized> cmd
Microsoft Windows [Version 10.0.19045.4529]
(c) Microsoft Corporation. All rights reserved.
C:\Users\ek\source\repos\are-symlinks-linearized>mkdir z
C:\Users\ek\source\repos\are-symlinks-linearized>copy NUL z\.keep
1 file(s) copied.
C:\Users\ek\source\repos\are-symlinks-linearized>mklink /d b z
symbolic link created for b <<===>> z
C:\Users\ek\source\repos\are-symlinks-linearized>mklink /d a b
symbolic link created for a <<===>> b
C:\Users\ek\source\repos\are-symlinks-linearized>mklink /d c b
symbolic link created for c <<===>> b
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:16 PM <DIR> .
06/23/2024 08:16 PM <DIR> ..
06/23/2024 08:16 PM <SYMLINKD> a [b]
06/23/2024 08:16 PM <SYMLINKD> b [z]
06/23/2024 08:16 PM <SYMLINKD> c [b]
06/23/2024 08:16 PM <DIR> z
0 File(s) 0 bytes
6 Dir(s) 102,425,387,008 bytes free
C:\Users\ek\source\repos\are-symlinks-linearized>git init
Initialized empty Git repository in C:/Users/ek/source/repos/are-symlinks-linearized/.git/
C:\Users\ek\source\repos\are-symlinks-linearized>git add .
C:\Users\ek\source\repos\are-symlinks-linearized>git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a
new file: b
new file: c
new file: z/.keep
C:\Users\ek\source\repos\are-symlinks-linearized>del z/.keep
Invalid switch - ".keep".
C:\Users\ek\source\repos\are-symlinks-linearized>del z.keep
Could Not Find C:\Users\ek\source\repos\are-symlinks-linearized\z.keep
C:\Users\ek\source\repos\are-symlinks-linearized>del z\.keep
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir a
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir b
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir c
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir z
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:17 PM <DIR> .
06/23/2024 08:17 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 102,417,731,584 bytes free
C:\Users\ek\source\repos\are-symlinks-linearized>git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a
new file: b
new file: c
new file: z/.keep
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: a
deleted: b
deleted: c
deleted: z/.keep
C:\Users\ek\source\repos\are-symlinks-linearized>git restore .
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:17 PM <DIR> .
06/23/2024 08:17 PM <DIR> ..
06/23/2024 08:17 PM <SYMLINKD> a [b]
06/23/2024 08:17 PM <SYMLINKD> b [z]
06/23/2024 08:17 PM <SYMLINKD> c [b]
06/23/2024 08:17 PM <DIR> z
0 File(s) 0 bytes
6 Dir(s) 102,417,731,584 bytes free
C:\Users\ek\source\repos\are-symlinks-linearized>del z\.keep
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir a
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir b
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir c
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir z
C:\Users\ek\source\repos\are-symlinks-linearized>git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a
new file: b
new file: c
new file: z/.keep
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: a
deleted: b
deleted: c
deleted: z/.keep
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:22 PM <DIR> .
06/23/2024 08:22 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 102,427,312,128 bytes free
C:\Users\ek\source\repos\are-symlinks-linearized>git restore c
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:22 PM <DIR> .
06/23/2024 08:22 PM <DIR> ..
06/23/2024 08:22 PM <SYMLINK> c [b]
1 File(s) 0 bytes
2 Dir(s) 102,427,361,280 bytes free
C:\Users\ek\source\repos> rm -r -fo are-symlinks-linearized
C:\Users\ek\source\repos> mkdir are-symlinks-linearized
Directory: C:\Users\ek\source\repos
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 6/23/2024 8:25 PM are-symlinks-linearized
C:\Users\ek\source\repos> cd are-symlinks-linearized
C:\Users\ek\source\repos\are-symlinks-linearized> git init
Initialized empty Git repository in C:/Users/ek/source/repos/are-symlinks-linearized/.git/
C:\Users\ek\source\repos\are-symlinks-linearized [main]> cmd
Microsoft Windows [Version 10.0.19045.4529]
(c) Microsoft Corporation. All rights reserved.
C:\Users\ek\source\repos\are-symlinks-linearized>mklink /d a b
symbolic link created for a <<===>> b
C:\Users\ek\source\repos\are-symlinks-linearized>git add a
C:\Users\ek\source\repos\are-symlinks-linearized>mklink /d b z
symbolic link created for b <<===>> z
C:\Users\ek\source\repos\are-symlinks-linearized>git add b
C:\Users\ek\source\repos\are-symlinks-linearized>mkdir z
C:\Users\ek\source\repos\are-symlinks-linearized>copy NUL z\.keep
1 file(s) copied.
C:\Users\ek\source\repos\are-symlinks-linearized>git add z
C:\Users\ek\source\repos\are-symlinks-linearized>git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a
new file: b
new file: z/.keep
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:26 PM <DIR> .
06/23/2024 08:26 PM <DIR> ..
06/23/2024 08:26 PM <SYMLINKD> a [b]
06/23/2024 08:26 PM <SYMLINKD> b [z]
06/23/2024 08:26 PM <DIR> z
0 File(s) 0 bytes
5 Dir(s) 102,430,486,528 bytes free
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir a
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir b
C:\Users\ek\source\repos\are-symlinks-linearized>del z\.keep
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir z
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:27 PM <DIR> .
06/23/2024 08:27 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 102,430,470,144 bytes free
C:\Users\ek\source\repos\are-symlinks-linearized>git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a
new file: b
new file: z/.keep
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: a
deleted: b
deleted: z/.keep
C:\Users\ek\source\repos\are-symlinks-linearized>git restore a
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:27 PM <DIR> .
06/23/2024 08:27 PM <DIR> ..
06/23/2024 08:27 PM <SYMLINK> a [b]
1 File(s) 0 bytes
2 Dir(s) 102,430,404,608 bytes free
C:\Users\ek\source\repos\are-symlinks-linearized>rm a
C:\Users\ek\source\repos\are-symlinks-linearized>git restore .
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:27 PM <DIR> .
06/23/2024 08:27 PM <DIR> ..
06/23/2024 08:27 PM <SYMLINKD> a [b]
06/23/2024 08:27 PM <SYMLINKD> b [z]
06/23/2024 08:27 PM <DIR> z
0 File(s) 0 bytes
5 Dir(s) 102,430,400,512 bytes free
C:\Users\ek\source\repos\are-symlinks-linearized>git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a
new file: b
new file: z/.keep
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir a
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir b
C:\Users\ek\source\repos\are-symlinks-linearized>del z\.keep
C:\Users\ek\source\repos\are-symlinks-linearized>rmdir z
C:\Users\ek\source\repos\are-symlinks-linearized>git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a
new file: b
new file: z/.keep
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: a
deleted: b
deleted: z/.keep
C:\Users\ek\source\repos\are-symlinks-linearized>doir
'doir' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:32 PM <DIR> .
06/23/2024 08:32 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 102,423,896,064 bytes free
C:\Users\ek\source\repos\are-symlinks-linearized>git restore a
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:32 PM <DIR> .
06/23/2024 08:32 PM <DIR> ..
06/23/2024 08:32 PM <SYMLINK> a [b]
1 File(s) 0 bytes
2 Dir(s) 102,423,896,064 bytes free
C:\Users\ek\source\repos\are-symlinks-linearized>git restore b
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:32 PM <DIR> .
06/23/2024 08:32 PM <DIR> ..
06/23/2024 08:32 PM <SYMLINK> a [b]
06/23/2024 08:32 PM <SYMLINK> b [z]
2 File(s) 0 bytes
2 Dir(s) 102,423,896,064 bytes free
C:\Users\ek\source\repos\are-symlinks-linearized>git restore z
C:\Users\ek\source\repos\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\source\repos\are-symlinks-linearized
06/23/2024 08:32 PM <DIR> .
06/23/2024 08:32 PM <DIR> ..
06/23/2024 08:32 PM <SYMLINK> a [b]
06/23/2024 08:32 PM <SYMLINK> b [z]
06/23/2024 08:32 PM <DIR> z
2 File(s) 0 bytes
3 Dir(s) 102,423,764,992 bytes free
C:\Users\ek\src> rm -r -fo are-symlinks-linearized
C:\Users\ek\src> git init are-symlinks-linearized
Initialized empty Git repository in C:/Users/ek/src/are-symlinks-linearized/.git/
C:\Users\ek\src> cd are-symlinks-linearized
C:\Users\ek\src\are-symlinks-linearized [main]> cmd
Microsoft Windows [Version 10.0.19045.4529]
(c) Microsoft Corporation. All rights reserved.
C:\Users\ek\src\are-symlinks-linearized>mklink /d b z
symbolic link created for b <<===>> z
C:\Users\ek\src\are-symlinks-linearized>mklink /d a b
symbolic link created for a <<===>> b
C:\Users\ek\src\are-symlinks-linearized>git add a b
C:\Users\ek\src\are-symlinks-linearized>git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a
new file: b
C:\Users\ek\src\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\src\are-symlinks-linearized
06/24/2024 07:23 PM <DIR> .
06/24/2024 07:23 PM <DIR> ..
06/24/2024 07:23 PM <SYMLINKD> a [b]
06/24/2024 07:23 PM <SYMLINKD> b [z]
0 File(s) 0 bytes
4 Dir(s) 91,968,917,504 bytes free
C:\Users\ek\src\are-symlinks-linearized>rmdir a
C:\Users\ek\src\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\src\are-symlinks-linearized
06/24/2024 07:23 PM <DIR> .
06/24/2024 07:23 PM <DIR> ..
06/24/2024 07:23 PM <SYMLINKD> b [z]
0 File(s) 0 bytes
3 Dir(s) 91,968,315,392 bytes free
C:\Users\ek\src\are-symlinks-linearized>git restore a
C:\Users\ek\src\are-symlinks-linearized>dir
Volume in drive C is OS
Volume Serial Number is B203-10FB
Directory of C:\Users\ek\src\are-symlinks-linearized
06/24/2024 07:23 PM <DIR> .
06/24/2024 07:23 PM <DIR> ..
06/24/2024 07:23 PM <SYMLINK> a [b]
06/24/2024 07:23 PM <SYMLINKD> b [z]
1 File(s) 0 bytes
3 Dir(s) 91,968,118,784 bytes free
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment