Git memadamkan fail sepenuhnya?
習慣沉默
習慣沉默 2017-05-02 09:47:07
0
7
587
git add b.txt
rm b.txt
git commit -m '删除b.txt文件'

Saya melaksanakan baris ketiga commit dan kemudian gesaan

On branch master
Changes not staged for commit:
        deleted:    b.txt

no changes added to commit

Kemudian jika saya git checkout -- b.txt adakah saya masih boleh memulihkannya ke kawasan pementasan? Mengapa ia tidak dipadamkan sepenuhnya?

習慣沉默
習慣沉默

membalas semua(7)
PHPzhong

Seorang pemula. . . Tulis beberapa tutorial. . . . .

Pada dasarnya, git mempunyai tiga lokasi berbeza untuk menyimpan fail secara setempat.

  1. Pokok berfungsi: Ini mewakili semua fail dan folder yang anda boleh lihat

  2. indeks: Ini sebenarnya disimpan dalam folder .git seperti repositori berikut (format simpanan tidak akan dibincangkan di sini)

  3. Repositori: Menyimpan semua versi yang diserahkan.

Selepas semuanya dilakukan, komitmen terkini dalam WorkingTree, kawasan indeks dan repositori adalah sama.

git add bermaksud menggantikan/kemas kini fail dalam kawasan indeks dengan fail dalam WorkingTree. Oleh itu, selepas git add b.txt, fail b.txt dalam indeks dikemas kini dengan b.txt yang sedang disimpan.

rm b.txt hanyalah arahan linux, yang bermaksud untuk memadam fail. Untuk git, ini hanya memadamkan b.txt dalam WorkingTree.

git commit bermaksud membungkus fail dalam indeks dan meletakkannya ke dalam repositori. Memandangkan b.txt masih dalam kawasan indeks pada masa ini, git commit masih akan mengemas kini b.txt ke repositori.

Changes not staged for commit:
        deleted:    b.txt

Ini menunjukkan perbezaan antara WorkingTree semasa dan kawasan indeks:
Fail b.txt telah dipadamkan daripada WorkingTree semasa, tetapi fail itu masih wujud dalam indeks.

no changes added to commit

Gesaan ini harus dikatakan sebagai amaran, kerana git commit bermaksud untuk membungkus kandungan kawasan indeks ke dalam repositori Walau bagaimanapun, kerana ia telah dilakukan sebelum ini dan tiada perkara baru telah ditambah, kandungannya kawasan indeks adalah sama dengan yang terkini Komit adalah sama, git tidak perlu menyimpannya lagi, jadi ia memaparkan "Tiada apa-apa untuk dilakukan"

git rm Maksud arahan ini adalah untuk memadam fail tertentu dari kawasan indeks dan WorkingTree, jadi selepas git rm b.txt tiada b.txt dalam indeks. Itu sahaja

git checkout <branch> bermaksud mengemas kini kandungan dalam WorkingTree dan kawasan indeks dengan komitmen terkini dalam cawangan. Oleh kerana ia tidak boleh diterbalikkan, arahan ini akan memberikan gesaan jika kandungan di kedua-dua tempat ini belum diserahkan ke repositori.
git checkout -- filename bermaksud menggantikan fail dalam WorkingTree dengan kandungan kawasan indeks -- adalah pilihan, menunjukkan bahawa semua selepas parameter ini adalah nama fail. (Kerana kadangkala cawangan/Tag mungkin mempunyai nama yang sama dengan fail)

Arahan tambahan disertakan. . .
git status Ini bermakna untuk menunjukkan perbezaan antara WorkingTree dan kawasan indeks (lalai ialah merah), dan perbezaan antara indeks dan versi terkini yang diserahkan (lalai ialah hijau? Hijau gelap?). Di samping itu, akan ada petua tentang cara mengemas kini antara satu sama lain di antara mereka.

为情所困

cuba git rm filename

巴扎黑

Penyoal terlebih dahulu perlu mengetahui mengapa git memerlukan operasi tambah Kerana git hanya mempunyai baris arahan pada permulaan, operasi tambah adalah bersamaan dengan operasi pemilihan fail di bawah GUI, jadi operasi tambah dan komit harus dipertimbangkan. secara keseluruhan (iaitu, Seperti memilih fail di bawah GUI dan menyerahkannya), ia tidak boleh dipisahkan.

滿天的星座

1.git add b.txt //Tambah b.txt dari ruang kerja ke kawasan pementasan (peringkat)
2.rm b.txt //Padam b.txt dalam ruang kerja, tetapi tidak dilaksanakan git rm b.txt memadam fail daripada repositori
3. git commit -m 'Delete b.txt file' // Memandangkan git rm b.txt tidak dilaksanakan, commit hanya menyerahkan kandungan dalam 1
--&gt ;Anda harus melaksanakan git rm b.txt antara 2 dan 3 untuk memadam fail

阿神

Saya ingin mengingatkan anda bahawa mengubah suai nama fail dan memadam fail dalam git adalah hampir sama seperti yang dinyatakan di atas, anda perlu menggunakan arahan git rm dan git mv untuk beroperasi secara berasingan untuk git. Anda boleh Lihat baik-baik

巴扎黑

. Padam fail:
Padam fail dalam ruang kerja, nama fail rm
Terdapat dua situasi:
Situasi pertama: Fail perlu dipadamkan dalam repositori juga.
 git rm nama fail
 git commit -m 'Description'
 Kes kedua: secara tidak sengaja memadam fail
git checkout -- nama fail

巴扎黑

Menambah kurang satu git rm di hadapan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan