Apa yang dimaksud dengan “Perubahan yang tidak dilakukan untuk komitmen”

239

Saya pikir jika Anda ingin melacak file yang Anda harus git add [files you want to track]

Saya tidak tahu mengapa saya menerima pesan itu Changes not staged for commit.

Jika file-file itu tidak dipentaskan, seharusnya tidak gitmenunjukkan kepada saya file-file itu Untrackedseperti itu

masukkan deskripsi gambar di sini

Yang saya lakukan adalah membuat fitur baru dari developcabang dan bekerja di feature/change_excel_formatcabang

Saya pikir file-file itu harus dalam stagedstatus,

Tapi git statuskatakan padakuChanges not staged for commit

masukkan deskripsi gambar di sini

Untuk singkat, saya hanya tahu ada 3 tahapan dalam git untracked, staged, committed Bisakah satu katakan padaku, apa adalah tahap di untukChanges not staged for commit masukkan deskripsi gambar di sini

Jadi jika saya memodifikasi file a (sudah di repo)

dan ketik git st, git akan memberitahukuChanges not staged for commit

jika saya git amaka file atersebut akan masukstaged status

jika saya memodifikasi file asekarang, akan ada dua status file adalam git, bukan?

Jadi saya harus memutuskan apakah membuat staged akomitmen atau membuat not stage auntuk dipentaskan, dan kemudian dipentaskan sebelumnya file aakan dibuang?

masukkan deskripsi gambar di sini

sepeda baru
sumber
3
jika mendapatkan pesan ini, dan apakah Anda ingin file ini (a) perlu komit, pastikan Anda berada di jalur direktori yang benar (path root proyek untuk menambahkan semua) saat Anda git add
Sadee

Jawaban:

325

ketika Anda mengubah file yang sudah ada di repositori, Anda harus melakukannya git addlagi jika Anda ingin dipentaskan.

Ini memungkinkan Anda untuk melakukan hanya sebagian dari perubahan yang Anda buat sejak komit terakhir. Sebagai contoh, katakanlah Anda memiliki file a, file, bdan file c. Anda memodifikasi file adan file btetapi perubahannya sangat berbeda dan Anda tidak ingin semuanya dalam satu komit tunggal. Anda masalah

git add a
git commit a -m "bugfix, in a"
git add b
git commit b -m "new feature, in b"

Sebagai catatan, jika Anda ingin melakukan semua yang Anda bisa ketik saja

git commit -a

Semoga ini bisa membantu.

Stefano Falasca
sumber
1
Jadi, jika file-file itu sudah di repo. dan saya sudah mengubahnya, saya juga bisa git commit THEMlangsung tanpa menambahkannya, kan?
Sepeda baru
1
tentu saja. Dan dalam hal ini hanya file yang terdaftar yang akan dikomit, terlepas dari adanya perubahan bertahap pada file yang berbeda.
Stefano Falasca
1
Saya memiliki masalah yang sama tetapi masalah saya juga tentang penyebab submodule file yang tidak terlacak. Jadi di sub direktori saya, saya juga menambahkan semua perubahan dengan git dan masalahnya telah hilang.
Elia
1
Saya sudah melakukannya git clean -fddan saya masih mendapatkan ini. Saya ingin menyingkirkan semua perubahan. Apa lagi yang harus saya lakukan?
Sayang
3
git commit -atidak melakukan segalanya, hanya file yang diperbarui, bukan yang baru ...
Martin
62

Anda harus menggunakan git add untuk menampilkannya, atau mereka tidak akan melakukan. Anggap itu memberi tahu git mana perubahan yang ingin Anda lakukan.

git add -u :/menambahkan semua perubahan file yang dimodifikasi ke panggung git add * :/menambahkan modifikasi dan semua file baru (yang tidak gitignoreed) ke panggung

Dannie
sumber
2
Jawaban ini jelas dan ringkas dibandingkan dengan yang di atas, itu sebabnya saya menyukainya. ;)
oaxacamatt
13

Ini cara lain yang dikatakan Git:

Hei, saya melihat Anda membuat beberapa perubahan, tetapi perlu diingat bahwa ketika Anda menulis halaman ke riwayat saya, perubahan itu tidak akan ada di halaman ini.

Perubahan pada file tidak dipentaskan jika Anda tidak secara eksplisit git addmelakukannya (dan ini masuk akal).

Jadi saat Anda git commit, perubahan itu tidak akan ditambahkan karena tidak dipentaskan. Jika Anda ingin mengkomitnya, Anda harus mengaturnya terlebih dahulu (mis. git add).

Agis
sumber
2
Tapi saya tidak mengubah file yang direferensikan
Eoin
1
Saya tidak mengerti bagaimana tepatnya perilaku ini masuk akal. Jika saya sudah memberi tahu Git untuk melacak file dengan melakukan add .ketika saya mengatur repostiry, dan itu dapat mendeteksi saya telah membuat perubahan padanya, mengapa saya perlu menambahkan file secara eksplisit setiap kali saya melakukan? Hanya untuk membuat perubahan ke file, saya harus add, commit dan push . Demarkasi antara commitdan dorongan masuk akal bagi saya, demarkasi antara adddan committampaknya sangat berlebihan.
Prometheus
1
@ Hashim Saya setuju, saya benar-benar tidak mengerti logika.
Herman Toothrot
6

Ikuti langkah-langkah di bawah ini:

1- git simpanan
2- git tambahkan.
3- git commit -m "pesan komitmen Anda"

Mam
sumber
5
simpanan git menghapus semua perubahan saya, itu 10 jam kerja :(
viniciussvl
13
jika Anda menggunakan "git stash", ia menempatkan perubahan itu ke "temp place" untuk mendapatkannya kembali cukup ketik "git stash pop" untuk mendapatkan perubahan dari "temp place"
Cyrus Zei
12
JANGAN GUNAKAN simpanan git sampai Anda membaca komentar @viniciussvl dan Cyrus
shabby
1
Mengapa saya menggunakan simpanan git dalam kasus ini?
Tobias Kaufmann
4

Andaikan Anda menyimpan perubahan file baru. (navbar.component.html misalnya)

Lari:

ng status
modified:   src/app/components/shared/navbar/navbar.component.html

Jika Anda ingin mengunggah perubahan itu untuk file itu, Anda harus menjalankan:

git add src/app/components/shared/navbar/navbar.component.html

Lalu:

git commit src/app/components/shared/navbar/navbar.component.html -m "new navbar changes and fixes"

Lalu:

git push origin [your branch name, usually "master"]

-------------------------------------------------- -------------

Atau jika Anda ingin mengunggah semua perubahan Anda (beberapa / semua file):

git commit -a

Dan mereka ini akan muncul "Silakan masukkan pesan komit untuk perubahan Anda."

  • Anda akan melihat pesan ini jika Anda melakukan komit tanpa pesan (-m)
  • Anda bisa keluar dari sana dengan dua langkah:
  • 1.a. Ketikkan pesan multisaluran untuk memindahkan foward dengan komit.
  • 1.b. Biarkan kosong untuk membatalkan komit.
    1. Tekan "esc" lalu ketik ": wq" dan tekan enter untuk menyimpan pilihan Anda. Biola!

Lalu:

git push

Dan viola!

David Castro
sumber
2
Sama saya katakan di atas: git commit -atidak mengunggah al perubahan, itu tidak termasuk file baru. Ini hanya akan melakukan pembaruan ke file yang ada.
Martin
3

Coba ikuti int git bash

1.git add -u :/

2.git commit -m "your commit message"

  1. git push -u origin master

Catatan: jika Anda belum menginisialisasi repo Anda.

Pertama-tama

git init 

dan ikuti langkah-langkah yang disebutkan di atas secara berurutan. Ini berhasil untuk saya

Amila Weerasinghe
sumber
Masalah ini berhasil bagi saya, pada konflik git di mana saya tidak dapat menghapus file dari repositori lokal saya dan melakukan dari repositori lokal ke cabang master jarak jauh.
Siwoku Adeola
1

itu berarti mereka tidak ditambahkan untuk dikomit, Anda harus melakukan git add scripts / excel_parser.py dan suka untuk mementaskannya .. begitu mereka dipentaskan ketika Anda melakukan status git mereka akan dipentaskan dan git komit akan mengkomit mereka

Anda dapat git commit -a -m "all checkin" yang akan secara otomatis menampilkan dan melakukan semua file di pohon

LeMoN.xaH
sumber
1

Anda mungkin melihat kesalahan ini ketika Anda telah menambahkan file baru ke kode Anda dan sekarang Anda mencoba untuk melakukan kode tanpa staging (menambahkan) itu.

Untuk mengatasinya, pertama-tama Anda dapat menambahkan file dengan menggunakan git add ( git add your_file_name.py) dan kemudian melakukan perubahan ( git commit -m "Rename Files" -m "Sample script to rename files as you like")

Waqas Khalid Obeidy
sumber
1

Saya telah membaca semua balasan di atas dan mencoba di terminal mengikuti langkah-langkah yang berfungsi dengan baik untuk memperbarui file baru dan mengubah master.

1) git add. 2) git commit -m "pesan Anda" 3) git push master asal

Saya harap ini membantu Anda.

Ksaroz Shrestha
sumber
1

Anda mungkin berada di direktori yang salah ketika melakukan git add. :-)

Mempesona
sumber
-7

Menghapus dir/.../.git

bekerja untukku.

tumpukan aji
sumber
jawaban Anda membutuhkan informasi latar belakang atau wawasan mengapa atau bagaimana cara kerjanya untuk Anda.
Joshua K
Seperti, jawabannya tidak mendukung pertanyaan. Silakan pertimbangkan untuk mengubah atau menambahkan informasi lebih lanjut.
Francisco Maria Calisto