1

advimage リポジトリのクローンを作成すると、img/ディレクトリが追跡されていないように見えます。

gokmen@rodosto advimage % git st
?? img/
gokmen@rodosto advimage % git status
# On branch develop
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   img/
nothing added to commit but untracked files present (use "git add" to track)

このディレクトリは空ではありません。にsample.gifという名前の追跡ファイルがありますimg/。空のファイルを追加しようとしています:

gokmen@rodosto advimage % touch img/hede
gokmen@rodosto advimage % git add img/hede 
gokmen@rodosto advimage % git st
A  img/hede
?? img/
gokmen@rodosto advimage % rm -rf img 
gokmen@rodosto advimage % git st
AD img/hede
 D img/sample.gif
gokmen@rodosto advimage % git reset
Unstaged changes after reset:
M   img/sample.gif
gokmen@rodosto advimage % git st
 D img/sample.gif
gokmen@rodosto advimage % 

git fsck --full出力は空です。リストimg/から削除できないのはなぜですか?git status

4

1 に答える 1

2

ファイル システムからファイルを削除しましたが、リポジトリのインデックスから削除していません。ディレクトリを完全git rm -r img/ && git commitに削除するために発行します。img/

何が起こっていますか:

gokmen@rodosto advimage % rm -rf img 
gokmen@rodosto advimage % git st
AD img/hede
 D img/sample.gif

AD img/hedeimg/hedeは、新しいファイルをコミットしてから、を使用せずに削除したことを示唆していますgit rm。を使用せずD img/sample.gifに削除したことを示唆しています。img/sample.gifgit rm

gokmen@rodosto advimage % git reset
Unstaged changes after reset:
M   img/sample.gif

git resetgit が追跡を停止したことを意味しimg/hede、これはコミットされておらず、rm -rfコマンドによって削除されました。img/sample.gif以前から追跡 (および変更) されています。を発行git reset --hardした場合、ここには出力が表示されませんが、img/sample.gif は作業ディレクトリに戻ります。

gokmen@rodosto advimage % git st
 D img/sample.gif

これは、の代わりに で削除img/sample.gifしたことを示しています。この時点で、発行してファイルを削除できます。rmgit rmgit rm img/sample.gif && git commit

于 2012-07-10T12:35:28.053 に答える