一个奇怪的git问题,求大家帮忙分析一下?
我想大声告诉你
我想大声告诉你 2017-05-02 09:33:59
0
3
530

比如我现在在工作区新建一个文件叫test.html,然后git status:

git检测到这个新添加的文件,提示通过add加入暂存区。
下面执行:
git reset --hard
貌似没有执行什么,再看git status:

还是刚添加文件时的git status提示,新添加的test.html没有被删除。

现在执行:
git add dist/test.html
在查看git status状态:

新添加的test.html放入暂存区,下面执行:
git reset --hard
再看git status,工作区和暂存区全部干净了,新添加的test.html也没有了。

总结下两次操作的区别:
同样是新建了一个test.html文件
第一种是直接git reset --hard,新建test.html文件在工作区被保留
第二种是先add这个新建test.html文件,被添加到暂存区,然后git reset --hard,工作区的test.html文件也被删除了。
如果git reset --hard是拿上次提交的记录来覆盖工作区和暂存区的话,那么第一种情况时,test.html就应该被删除。如果是git reset --hard不对没有被追踪的文件进行处理的话,第二种情况下,test.html在工作区不会被删除。
自己已经晕了,等git来解答,我觉着这很可能是git的一个bug。

我想大声告诉你
我想大声告诉你

membalas semua(3)
小葫芦

git reset --hard adalah untuk menetapkan semula kandungan kawasan pementasan dan ruang kerja kepada versi yang ditunjukkan oleh HEAD.
Jadi dalam kes kedua, test.html di kawasan pementasan dan kawasan kerja anda hilang.
Bagi kes pertama, jika anda melihat dengan teliti pada gambar pertama, ia menunjukkan bahawa test.html adalah fail Tidak Dijejaki, bermakna fail itu belum dikesan, jadi sudah tentu ia tidak akan dipadamkan.

给我你的怀抱
Stage Area/Index Area(缓存区)

====================================

Working Area(工作区)

====================================

Untracking Area(未追踪文件,即新建文件)

git reset Ia mempengaruhi Peringkat dan kawasan Kerja (anda sendiri yang mengatakannya), jadi bukan Git mempunyai pepijat, tetapi anda tidak memahami konsep asas.

淡淡烟草味

1. Untuk membatalkan kawasan storan sementara, gunakan git reset. Jangan cuba --hard
2

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!