threads / discuss / 43167

Re: index manipulation quickref

Subject: Re: index manipulation quickref

## tl;dr

5 messages between Dec 12, 2006 and Dec 12, 2006.

replies: 4people: 4as markdown or json

Nguyen Thai Ngoc Duy· Dec 12, 2006, 10:57 UTC · lore

index manipulation quickref

Hi,

I'm trying to collect all operations related to index from user perspective and corresponding commands. The list may be put to git wiki if people think it can help newbies:

update file content to index: git update-index file add a file to index: git add file delete a file from index: git update-index --remove --force-remove (or remove that file in workdir and do git update-index --remove) read a tree to index: git read-tree treeish, git reset treeish read a file from a tree to index: git ls-tree treeish file|git update-index --index-info --stdin copy a file from index to workdir: git checkout-index file refresh index: git update-index --refresh copy entire index to workdir: git checkout-index output a file from index to stdout: ?? (is there a command for this?) list files in index: git ls-files compare index and workdir file listing: git ls-files (with lots of options here) diff between workdir and index: git diff diff between index and a tree: git diff --cached treeish

Am I missing any operation here?
Jakub Narebski· Dec 12, 2006, 11:16 UTC · re: Nguyen Thai Ngoc Duy · lore
Nguyen Thai Ngoc Duy wrote:
Show 5 quoted lines
> I'm trying to collect all operations related to index from user
> perspective and corresponding commands. The list may be put to git
> wiki if people think it can help newbies:
> 
> update file content to index: git update-index file
Or "git add file" woth new git.
> add a file to index: git add file
> delete a file from index: git update-index --remove --force-remove
> (or remove that file in workdir and do git update-index --remove)

Or "git rm file" (old version did remove only from index, new version is to remove also from working directory if it matches HEAD)

> read a tree to index: git read-tree treeish, git reset treeish
> read a file from a tree to index: git ls-tree <tree-ish> file|git
> update-index --index-info --stdin
> copy a file from index to workdir: git checkout-index file
Or just "git checkout -- file"
> refresh index: git update-index --refresh
> copy entire index to workdir: git checkout-index
Or just "git checkout"
> output a file from index to stdout: ?? (is there a command for this?)
"git cat-file -p ::<filename>"
Show 5 quoted lines
> list files in index: git ls-files
> compare index and workdir file listing: 
>    git ls-files (with lots of options here) 
> diff between workdir and index: git diff
> diff between index and a tree: git diff --cached <tree-ish>
diff between workdir and tree: git diff <tree-ish> 
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Santi Béjar· Dec 12, 2006, 11:28 UTC · re: Nguyen Thai Ngoc Duy · lore
On 12/12/06, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
Show 5 quoted lines
> Hi,
>
> I'm trying to collect all operations related to index from user
> perspective and corresponding commands. The list may be put to git
> wiki if people think it can help newbies:
Cool. But for "index-newbies" not "git-newbies" :)
We could add (if exists) the porcelain-ish equivalent as:
update file content to index:
  git update-index file
  git add file (the development version)
add a file to index:
  git update-index --add file
  git add file
delete a file from index:
  git update-index --remove [--force-remove] file
  git rm file
read a tree to index:
  git read-tree treeish
  git reset commit-ish # It changes also the HEAD
read a file from a tree to index:
  git ls-tree treeish file | git update-index --index-info --stdin
  N/A
copy a file from index to workdir:
  git checkout-index file
  git checkout file
refresh index:
  git update-index --refresh
  git status # It does more things
copy entire index to workdir:
  git checkout-index
  git checkout -f
output a file from index to stdout:
  git cat-file blob :file (or :n:file, where n=0,1,2,3 are the unmerged stage)
  ??
list files in index:
  git ls-files
  ??
compare index and workdir file listing:
  git ls-files (with lots of options here)
  git status?
diff between workdir and index:
  git diff-files
  git diff
diff between index and a tree:
  git diff-index --cached treeish
  git diff --cached treeish
Junio C Hamano· Dec 12, 2006, 18:18 UTC · re: Nguyen Thai Ngoc Duy · lore
"Nguyen Thai Ngoc Duy" <pclouds@gmail.com> writes:
> I'm trying to collect all operations related to index from user
> perspective and corresponding commands. The list may be put to git
> wiki if people think it can help newbies:

I think this goes in the wrong direction. For "newbies" the Porcelain-ish set is supposed to be enough and if there is something missing that they need to do update-index command itself or a pipeline that involves update-index to achieve common tasks, we should enhance Porcelain-ish that captures the pattern.

I think quick-ref for Porcelain writers would not hurt, but they have manuals.

Nguyen Thai Ngoc Duy· Dec 12, 2006, 21:32 UTC · re: Junio C Hamano · lore
On 12/13/06, Junio C Hamano <junkio@cox.net> wrote:
Show 6 quoted lines
> I think this goes in the wrong direction.  For "newbies" the
> Porcelain-ish set is supposed to be enough and if there is
> something missing that they need to do update-index command
> itself or a pipeline that involves update-index to achieve
> common tasks, we should enhance Porcelain-ish that captures the
> pattern.

It is supposed to be porcelain command only. I figure what operation a user may need when manipulating index, then find the corresponding porcelain command.

As you can see, we have porcelain commands for most of operations. The missing piece is reset a file in index (and maybe "git cat-file ::file" -- it's too cryptic). Hopefully "git reset -- file" will be implemented soon.

← back to recent threads