Rumah > Soal Jawab > teks badan
> git init .
Initialized empty Git repository in /home/XXXXX/test/.git/
> ll
total
> touch foo
> git add foo
> git commit -m init
[master (root-commit) cdc99b4] init
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 foo
> echo "bar">foo
> git log
commit cdc99b4fa8cd2117015cd114bf269ab9a209e58c
Date: Thu Jan 28 08:57:34 2016 +0100
init
Change-Id: If5530860db17d2242e4082666042960fc423f737
> git diff --cached cdc99b4fa8cd2117015cd114bf269ab9a209e58c
> cat foo
bar
> git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: foo
#
no changes added to commit (use "git add" and/or "git commit -a")
>
Hasil yang dijangkakan ialah git diff boleh mengeluarkan bar
滿天的星座2017-05-02 09:29:13
git diff --cached
Terangkan, git diff
Perbandingan adalah antara pokok kerja dan HEAD. Dan milik anda hendaklah selepas git add
, jadi anda perlu membandingkan berperingkat dan HEAD, dan menambah --cached
untuk tujuan ini.
OK, saya tidak membaca proses dalam soalan dengan teliti sebelum ini, jadi jawapan di atas adalah salah Terima kasih kepada @jokester kerana mengingatkan saya.
Kemudian saya menghasilkan semula proses mengajukan soalan, dan hasilnya adalah seperti berikut:
Hasilnya ialah git diff
Tiada masalah untuk memastikan tiada peninggalan dalam keseluruhan proses, tangkapan skrin lengkap dilampirkan.
Di samping itu, saya perhatikan bahawa penanya menggunakan perintah foo
selepas mengedit semula git add
tanpa git diff --cached
, yang betul-betul selaras dengan apa yang saya nyatakan dalam jawapan sebelum ini (saya faham tujuan soalan secara terbalik), jadi jangan tambah --cached
. Dilampirkan perbandingan: