三十四、git rm概要

6376 ワード

本文の翻訳整理は以下の通りです.
http://web.mit.edu/~mkgray/project/silk/root/afs/sipb/project/git/git-doc/git-rm.
gitでは、git rmコマンドでファイルを削除し、gitの倉庫管理システムから削除することができます.最後にgit comitを実行してからgit倉庫に提出します.
例1
git rm 1.txt
1.txtファイルを削除し、gitの倉庫管理システムから削除します.
例2
git rm-r myFolder
フォルダmyFolderを削除し、gitの倉庫管理システムから削除します.
例3
$ git add 10.txt
$ git add-i
           staged    unstaged path
  1:       +0/-0     nothing 10.txt
  2:       +0/-0     nothing branch/t.txt
  3:       +0/-0     nothing branch/t 2.txt
 
****Communds****
  1:[s]tatus    2:[u]pdate    3:[r]evert    4:[a]dd untroced
  5:[p]atch     6:[d]iff      7:[q]uit      8:[h]elp
What now>7
Bye.
$ git rm--cached 10.txt
rm'10.txt'
$ ls
10.txt  2 3.txt 5.txt readme.txt
$ git add-i
           staged    unstaged path
  1:       +0/-0     nothing branch/t.txt
  2:       +0/-0     nothing branch/t 2.txt
****Communds****
  1:[s]tatus    2:[u]pdate    3:[r]evert    4:[a]dd untroced
  5:[p]atch     6:[d]iff      7:[q]uit      8:[h]elp
What now>
通過中 git add 10.txt コマンドは、ファイル10、txtをインデックスライブラリに追加し、また、 git rm--cached 10.txt ファイルの10.txtをgitのインデックスライブラリから削除しますが、ファイルの10.txt自体は何も操作しません.
また、既にgit rmによって削除されている(まだ提出されていない)ファイルやディレクトリについては、その操作をキャンセルしたいなら、まずgit add-iのサブコマンドrevertを通じてインデックスライブラリから削除して、git chocoutを利用しても良いです. <ファイル>コマンドがキャンセルされたディレクトリに到達します.
git addについては「
git add詳細
git checkoutについては「」を参照してください.
構文
git rm[-f|--force][-n][-r][--cached][--ignore-unmatch][--quiet][]
 
DESCRIPTION
Remove files from the index,or from the working tree and the index. git rm will not remove a file from just your working directory.(The e e isのoption to remove a file only from the working tree and yet keep it in the index;use /bin/rm if you want to do that.)The files being removed have to be identical to the tip of the branch,and no udates to their contens can be staged in the index,though that default bevior can overridden with the -f option.When --cached is given,the staged content has to match eigher the tip of the branch or the file on disk,allowing the file to be removed from just the index.
OPTION
<file>…
Files to remove.Fileglobs(e.g. *.c)can be given to remove all matching files.If you want git to expand file glob characters,you may need to shell-escape them.A leading directory name(e.g.g. dir to remove dir/file 1 and dir/file 2)can be given to remove all files in the directory,and recursively all sub-directores,but this requires the -r option to be explicitly given.
-f
--force
Override the up-to-date check.
-n
--dry-run
Don’t actually remove any file.Instead,just show if they exist in the index and would others wise be removed by the command.
-r
Allow recursive removal when a leading directory name is given.
--
This option can be used to separate command line options from the list of files、(useful when filenames might be mistaken for command line options)
--cached
Use this option to unstage and remove paths only from the index.Working tree files,whether modified or not,will be left alone.
--ignore-unmatch
Exit with a zero status even ifのfiles matched.
-q
--quiet
git rm normally outputone line(in the form of an) rm command for each file removed.This option suppreses that out put.
DISCUSSION
The<file>list given to the command can be exact pathnamens、file glob patterns、or leading directory namens.The command removes onlythe paths the pathat are known to git.Gving the name of a fithyou ath have
File globbling matches acros directory boundaries.Thus,givent two directores d and d 2,there is a difference between using git rm'd*' and git rm'd/*'は、as the former will also remove all of directoryです. d 2.
REMOVING FILES THAT HAVE DISAPPEARED FROM THE FILESYSTEM
The re isのoption for git rm to remove from the index only the paths have disappeared from the filesystem.However,depending on the use case,there are several ways can be done.
Using「git comit-a」
 
If you intentd that your next commt shound record all modifications of troced files in the working tree and record all removals of files that have been removed from the working tree with rm (as opposed to アメリカ git comit-a,as it will autticaly notice and record all removals.You can also have a simiar effect without comitting by using git add-u.
Using「git add-A」
 
When accepting a new code drop for a vent branch,you probably want to record both the レモバル of paths and additions of new paths as modifitions of existing paths.
Typeically you would first remove all troced files from the working tree using this command:
git ls-files -z | xargs -0 rm -f
and then untar the new code in the working tree.Alternally you could rsync the changes into the working tree.
After that、the ease st way to record all removals、additions、and modifications in the working tree is:
git add -A
See  git-add(1).
Other ways
 
If all you really want to do is to remove from the index the files that areのlonger present in the working tree(perhaps because your working tree is dirty sothat you cannot use) git comit-a)、use the following command:
git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached
EXAMPLES
git rm Dcumentation/\*.txt
Removes all *.txt files from the index that are under the Dcumentation directory and any of its subdirectores.
Note that the asterisk * is quot ted from the shell in this example;this lets git,and not the shell,expand the pathnames of files and subdirectores under the Dcumentation/ directory.
git rm-f git-*.sh
Because this example lets the shell expand the asterisk(i.e.you are listing the files explicity)it does not remove subdir/git-foo.sh.