Git commit -a "file yang tidak terlacak"?

93

Ketika saya melakukan a git commit -a, saya melihat yang berikut:

  # Please enter the commit message for your changes. Lines starting
  # with '#' will be ignored, and an empty message aborts the commit.
  # On branch better_tag_show
  # Changes to be committed:
  #   (use "git reset HEAD <file>..." to unstage)
  #
  # modified:   ../assets/stylesheets/application.css
  # modified:   ../views/pages/home.html.erb
  # modified:   ../views/tags/show.html.erb
  # modified:   ../../db/seeds.rb
  #
  # Untracked files:
  #   (use "git add <file>..." to include in what will be committed)
  #
  # ../assets/stylesheets/
  # ../views/pages/

Apa maksud dari file yang tidak terlacak itu? Semua perubahan memang telah dilacak. Saya tidak mengerti mengapa git memperingatkan saya tentang file yang tidak terlacak di sini.

EDIT :

Oke, saya melihat banyak balasan yang membingungkan. Inilah yang terjadi setelah saya git commit -aini.

# On branch master
nothing to commit (working directory clean)

Seperti yang Anda lihat, TIDAK ADA selain keempat file itu yang telah menerapkan perubahan.

Pertanyaan saya harus disusun ulang sebagai berikut: Mengapa git memperingatkan saya tentang file yang tidak terlacak ketika semua perubahan dalam komit ini telah dilacak?

Dengan kata lain, apakah peringatan yang tidak terlacak di pesan git commit tidak diperlukan ?

menghilang
sumber
1
(use "git add <file>..." to include in what will be committed)
zengr
1
zengr itu tidak diperlukan karena git commit -a akan mengkomit semua perubahan ke file yang telah dilacak.
menghilang
3
Ini adalah diperlukan bila file tidak pernah added sampai sekarang. Dari dokumen untuk -a: Beri tahu perintah untuk secara otomatis mengubah file yang telah dimodifikasi dan dihapus, tetapi file baru yang belum Anda
Noufal Ibrahim
Mengapa Anda mengatakan git 'memperingatkan' Anda? Seperti yang saya lihat, pesan file 'tidak terlacak' bersifat informasional. Ini bagi Anda untuk melihat apakah file-file itu perlu dikelola dan bertindak sesuai.
sateesh
@sateesh Apa pun yang Anda ingin menyebutnya, saya masih tidak berpikir ini benar-benar membantu sama sekali. Bagaimana ini informatif? Apa yang harus aku lakukan? Apakah Anda membaca posting saya di bagian "EDIT" di mana saya menulis bahwa tidak ada modifikasi pada file lain kecuali yang tercantum di atas? Jika Anda menemukan ini informatif, itu setara dengan saya memberi tahu Anda bahwa folder acak apa pun di pohon repo Anda tidak akan dilacak ketika tidak ada yang perlu dikhawatirkan.
menghilang

Jawaban:

105

Untuk orang lain yang mengalami masalah yang sama, coba jalankan

git add . yang akan menambahkan semua file dari direktori saat ini untuk dilacak (termasuk tidak terlacak) dan kemudian digunakan

git commit -a untuk melakukan semua file yang dilacak.

Seperti yang disarankan oleh @Pacerier, satu liner yang melakukan hal yang sama adalah

git add -A

coding_idiot
sumber
5
git commit -aakan melakukan semua file yang dilacak, bukan file yang tidak terlacak. git add .akan melacak file yang tidak terlacak di direktori saat ini. git add -aakan melacak semua file yang tidak terlacak.
sini
@matteo itu git add -A, bukan git commit -A. Sejauh yang saya tahu, tidak ada sakelar yang dapat Anda lewati git commityang menyertakan file yang tidak terlacak.
Len
1
-a sepertinya sudah usang hanya untuk A sekarang. Terima kasih semua. :)
tcratius
Untuk wawasan lebih lanjut tentang perintah-perintah tersebut, Anda dapat memeriksa: stackoverflow.com/questions/572549/…
Onat Korucu
30

git commit -am "msg"tidak sama dengan git add filedangit commit -m "msg"

Jika Anda memiliki beberapa file yang tidak pernah ditambahkan ke pelacakan git, Anda masih perlu melakukannya git add file

Perintah "git commit -a" adalah jalan pintas ke proses dua langkah. Setelah Anda mengubah file yang sudah dikenal oleh repo, Anda masih harus memberi tahu repo, “Hei! Saya ingin menambahkan ini ke file bertahap dan akhirnya menyerahkannya kepada Anda. ” Itu dilakukan dengan mengeluarkan perintah "git add". "Git commit -a" adalah menjalankan file dan melakukannya dalam satu langkah.

Sumber: "git commit -a" dan "git add"

zengr
sumber
tapi, seperti yang Anda katakan git commit -a = git add. + git commit mengapa tidak menambahkan file secara otomatis ke area pelacakan ?? ....
Johnny
1
@ Johnny: git commit -atidak sama dengan git add .+ git commit. The git addLangkah menambahkan hanya file yang terdaftar sebagai dimodifikasi di Anda git status, tidak semuanya di direktori saat ini.
Soren Bjornstad
Ya, saya menemukannya hari ini!
KansaiRobot
9

Anda harus mengetik di baris perintah

git add --all

Ini akan melakukan semua file yang tidak terlacak

Edit:

Setelah mementaskan file Anda, mereka siap untuk komit sehingga perintah Anda selanjutnya harus

git commit -am "Your commit message"
Travis Delly
sumber
5
Ini tahapan semua file, bukan mengikatnya . Anda masih harus melakukannya secara terpisah.
Saeb Amini
8
  1. Pertama, Anda perlu menambahkan semua file yang tidak terlacak. Gunakan baris perintah ini:

    git add *

  2. Kemudian komit menggunakan baris perintah ini:

    git commit -a

Muhammad
sumber
7

Jika Anda mengalami masalah dengan file yang tidak terlacak, skrip 3 baris ini akan membantu Anda.

git rm -r --cached .
git add -A
git commit -am 'fix'

Lalu baru saja git push

AliFurkan
sumber
Ini mengganggu saya karena saya perlu membuka file terlacak yang sekarang saya abaikan.
Spyder man
2

Seperti namanya 'file yang tidak terlacak' adalah file yang tidak dilacak oleh git. Mereka tidak ada di area pementasan Anda, dan bukan bagian dari komitmen sebelumnya. Jika Anda ingin agar versi (atau dikelola oleh git) Anda dapat melakukannya dengan memberi tahu 'git' dengan menggunakan 'git add'. Periksa bab ini Merekam Perubahan ke Repositori di buku Progit yang menggunakan visual yang bagus untuk memberikan penjelasan yang baik tentang merekam perubahan pada git repo dan juga menjelaskan istilah 'dilacak' dan 'tidak terlacak'

sateesh
sumber
0

Pastikan Anda berada di direktori yang benar (folder utama repositori) di git lokal Anda sehingga dapat menemukan konfigurasi folder .git sebelum Anda mengikat atau menambahkan file.

einarc
sumber
Ini tidak memberikan jawaban atas pertanyaan tersebut. Untuk mengkritik atau meminta klarifikasi dari seorang penulis, tinggalkan komentar di bawah postingannya. - Dari Ulasan
sampathsris