git-lfs/docs/man
Taylor Blau 5346b02747 commands/command_migrate.go: introduce '--fixup' flag on 'import'
A common invocation of the 'git lfs migrate import' command is with
'--include' and/or '--exclude' flag(s), which specify wildmatch
pattern(s) for which paths to migrate and/or not migrate.

This is useful for retroactively importing a set of files into Git LFS's
care, or fixing up a file that should have been tracked by Git LFS but
was accidentally committed as a large object instead.

In the later case, it is often the reality that a user will run 'git lfs
migrate --import' with an '--include' path that they believe will gather
the file (and the file alone). This approach is brittle because it
requires the user to infer not only the applicable pattern but the
meaning of that pattern. It also requires the user to run more than one
migration when fixing multiple types of files.

The .gitattributes file(s) contained within a repository provide an
authoritative source on what file(s) are considered by Git to be tracked
in Git LFS. We can use this information to infer the correct patterns to
``fix up'' a broken repository.

In the simplest case, if a repository's .gitattributes file contains the
following:

    *.txt filter=lfs merge=lfs diff=lfs -text

But a .txt file matched by that pattern is not parse-able as an LFS
pointer, it will appear as unable to checkout.

Running 'git lfs migrate import --fixup --everything' will correctly
traverse history and find the affected .txt file, read it, create an
object file for it, and store it as an LFS pointer in history.

Thus, a user can run one command which will recognize arbitrarily
complex problems where a file should be tracked by Git LFS, but isn't.

Later, this feature could be combined with the new 'git lfs migrate
export' functionality to also clean files _out_ of Git LFS to object
files when they are not supposed to be tracked as Git LFS objects.
2018-07-06 14:42:48 -05:00
..
git-lfs-checkout.1.ronn commands/checkout: mark 'git lfs checkout' as deprecated 2018-06-08 15:58:43 -05:00
git-lfs-clean.1.ronn docs/man: reference git-lfs-pointer(1) in clean documentation 2016-09-05 12:23:48 -06:00
git-lfs-clone.1.ronn commands/clone: install repo-level hooks after git lfs clone 2017-03-23 10:54:52 -06:00
git-lfs-config.5.ronn commands/uploader: set lfs.allowincompletepush default to false 2018-07-05 23:20:02 +02:00
git-lfs-env.1.ronn Man pages: change command descriptions to the imperative voice 2015-04-13 10:26:41 +02:00
git-lfs-ext.1.ronn LFS Extensions: smudge command 2015-07-31 17:08:21 -04:00
git-lfs-fetch.1.ronn update fetch include/exclude docs for pattern matching 2016-08-16 12:16:47 -07:00
git-lfs-filter-process.1.ronn docs/man: document git-lfs-filter-process(1) 2016-11-17 16:03:59 -07:00
git-lfs-fsck.1.ronn slight fsck man page update 2015-06-18 07:21:28 -06:00
git-lfs-install.1.ronn commands/install: teach --manual 2017-07-11 10:43:33 -06:00
git-lfs-lock.1.ronn Doc updates 2017-02-15 13:38:47 -07:00
git-lfs-locks.1.ronn Doc updates 2017-02-15 13:38:47 -07:00
git-lfs-logs.1.ronn docs/man: move "logs" subcommands from OPTIONS to COMMANDS 2016-06-29 11:49:46 -06:00
git-lfs-ls-files.1.ronn commands: teach '--deleted' to git lfs ls-files 2017-12-19 18:59:06 -05:00
git-lfs-migrate.1.ronn commands/command_migrate.go: introduce '--fixup' flag on 'import' 2018-07-06 14:42:48 -05:00
git-lfs-pointer.1.ronn add man page for the pointer command 2015-04-22 13:46:06 -06:00
git-lfs-post-checkout.1.ronn Add man pages for post-checkout and post-merge commands 2017-01-09 12:32:37 +00:00
git-lfs-post-merge.1.ronn Add man pages for post-checkout and post-merge commands 2017-01-09 12:32:37 +00:00
git-lfs-pre-push.1.ronn split pre-push cmd from push 2015-04-24 10:04:02 -06:00
git-lfs-prune.1.ronn Add more information about lfs.storage option to man 2017-07-12 12:07:03 +03:00
git-lfs-pull.1.ronn remove empty section 2015-09-17 15:47:35 -06:00
git-lfs-push.1.ronn remove deprecated features 2016-11-18 07:44:20 -07:00
git-lfs-smudge.1.ronn commands: warn on smudged files larger than 4gb on Windows 2017-07-31 10:37:44 -06:00
git-lfs-status.1.ronn Implement status --json 2017-06-08 18:19:30 -07:00
git-lfs-track.1.ronn point to gitignore in track manpage 2018-06-13 17:26:30 -04:00
git-lfs-uninstall.1.ronn Fixes #2714: Add --local option to uninstall man page 2017-11-16 10:42:53 +09:00
git-lfs-unlock.1.ronn Doc updates 2017-02-15 13:38:47 -07:00
git-lfs-untrack.1.ronn convert single to double quotes in examples, which are cross platform 2017-06-06 08:22:43 -06:00
git-lfs-update.1.ronn Add git lfs update --manual option & promote it on hook install fail 2016-04-26 12:04:55 +01:00
git-lfs.1.ronn Merge pull request #3039 from anarcat/example 2018-06-21 15:32:31 -05:00
index.txt git addddd 2014-07-24 12:21:27 -06:00
mangen.go we need the rootdir, actually 2015-09-30 17:15:07 -07:00