Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
git_fsck [2019/03/02 07:50] – [OPTIONS] rpjdaygit_fsck [2019/03/12 15:21] (current) – [Overview] rpjday
Line 1: Line 1:
 ===== Overview ===== ===== Overview =====
  
-Using ''git fsck'' to display dangling and unreachable objects.+Using ''git fsck'' to display dangling and unreachable objects (should cover reflog first). 
 + 
 +Check: 
 + 
 +  * Does ''%%--%%lost-found'' save blobs? Don't think so.
  
 ===== SYNOPSIS ===== ===== SYNOPSIS =====
  
 <code> <code>
-git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs] +git fsck 
-         [--[no-]full] [--strict] [--verbose] [--lost-found] +  [--tags] [--root] [--unreachable] [--cache] [--no-reflogs] 
-         [--[no-]dangling] [--[no-]progress] [--connectivity-only] +  [--[no-]full] [--strict] [--verbose] [--lost-found] 
-         [--[no-]name-objects] [<object>*]+  [--[no-]dangling] [--[no-]progress] [--connectivity-only] 
 +  [--[no-]name-objects] [<object>*]
 </code> </code>
 +
 +===== Dangling versus unreachable =====
 +
 +A dangling object is an unreachable object which is not reachable even from //other// unreachable objects; a dangling object has no references to it from //any// reference or object in the repository.
 +
 +<code>
 +                A<-----B<-----C   [no reference to this]
 +               /
 +              /
 +             X<-----Y<-----Z (master)
 +</code>
 +
 +  * unreachable: A, B, and C
 +  * dangling: C only
  
 ===== OPTIONS ===== ===== OPTIONS =====
Line 34: Line 53:
 </code> </code>
  
-''%%--%%unreachable'' overrides ''%%--%%no-dangling''.+Note that ''%%--%%unreachable'' overrides ''%%--%%no-dangling''.
  
 ===== Examples ===== ===== Examples =====
Line 116: Line 135:
 unreachable commit 69fd5e6a8733ed63293aab658d584150c0af9db2 unreachable commit 69fd5e6a8733ed63293aab658d584150c0af9db2
 $ $
 +</code>
 +
 +Consider reflog entries to be unreachable:
 +
 +<code>
 +$ git fsck --unreachable
 +Checking object directories: 100% (256/256), done.
 +Checking objects: 100% (11352/11352), done.
 +$
 +</code>
 +
 +<code>
 +$ git fsck --no-reflogs
 +Checking object directories: 100% (256/256), done.
 +Checking objects: 100% (11352/11352), done.
 +dangling commit 3305054f1c03c3a6d25091fc31bba6cbe8cc1c7b
 +dangling commit a20ef4592ca3a29e29420a21d84956d418b8b564
 +dangling commit 858f9d07335434e7e3148116c4b89d78338a3911
 +dangling commit 5f1992a4245c301ed5e556f4ef47153981a67820
 +dangling commit a9211435ad4b79393a9a845b45b6b117a89e77f7
 +dangling commit 67a23d481d11fcab4ff7fb1bb69d829e5b7f3d01
 +dangling commit 51a49991d6ca4e2262c9ca5cc6f414ab49ba635d
 +dangling commit 48c2a6a80a221a3c1328ea5c163ad805320a8287
 +dangling commit 234c0a04dbd517e4debc14fa8fac70793c967901
 +dangling commit a7561cb3f333a7e9fb93cf233fb79c9e1d19847e
 +dangling commit 2be2782c3b03aea7af2622a26e1c673d10d35eb0
 +dangling commit 65633ac0f606e70db50460502989a7a74dca8e20
 +dangling commit 066b84e3461b5e2f231159175e6641e360bb2477
 +dangling commit bb78a0fd0cefa2f6cfb9ecdbd877ce9045e09780
 +dangling commit 99fd08769f3e7c134c4fc97c76edd5e9b4c9e562
 +$
 +</code>
 +
 +===== Config options =====
 +
 +<code>
 +fsck.skipList
 +    The path to a list of object names (i.e. one unabbreviated
 +    SHA-1 per line) that are known to be broken in a non-fatal
 +    way and should be ignored. On versions of Git 2.20 and
 +    later comments (#), empty lines, and any leading and
 +    trailing whitespace is ignored. Everything but a SHA-1 per
 +    line will error out on older versions.
 </code> </code>
  • git_fsck.1551513032.txt.gz
  • Last modified: 2019/03/02 07:50
  • by rpjday