Git: для коміту не додано нічого, окрім відстежених файлів


78

Я новачок у Git і використовую вперше. Буду вдячний, якщо хтось зможе мені допомогти. Я намагався знайти відповідь на форумах, але є безліч команд, які виходять і не впевнені, яку з них використовувати.

На сервері prod, якщо я це роблю git pull, це видає мені таку помилку:

Файли, що не відслідковуються: (використовуйте "git add ...", щоб включити в те, що буде здійснено)

Optimization/language/languageUpdate.php
email_test.php
nothing added to commit but untracked files present (use "git add" to track)
Please move or remove them before you can merge.

Я не надто впевнений, як змусити це працювати. Якби я їх видалив, звідки б його видалити. Цінуємо вашу відповідь.

Відповіді:


71

Тут у вас є два варіанти. Ви можете додати невідстежені файли до вашого сховища Git (як пропонувалось попереджувальне повідомлення), або можете додати файли до свого .gitignoreфайлу, якщо ви хочете, щоб Git їх ігнорував.

Щоб додати файли, використовуйте git add:

git add Optimization/language/languageUpdate.php
git add email_test.php

Щоб проігнорувати файли, додайте наступні рядки до свого .gitignore:

/Optimization/language/languageUpdate.php
/email_test.php

Кожен з варіантів повинен дозволити git pullуспіху згодом.


Гаразд, якщо я додаю їх, чи буде він доданий на сервер або на мій локальний?
користувач4943236

Хитре питання. Якщо ви використовуєте git add, то файли будуть відстежуватися вашим сховищем Git. Це означає, що вони з’являться в будь-якій гілці або локально, або на пульті дистанційного керування. Якщо ви не хочете, щоб це сталося, скористайтеся .gitignoreопцією. Якщо вам навіть не потрібні файли, ви можете їх видалити.
Тім Біглейзен

спасибі, після цього він пише: error: Ваші локальні зміни в наступних файлах будуть замінені шляхом злиття: Optimization / language / update.php Будь ласка, внесіть свої зміни або сховайте їх, перш ніж зможете об’єднати.
user4943236

Ви додали новий файл, і Git виявляє це як зміну. Тож вам доведеться це зробити, виконуючи git commit -m 'Added update PHP script'.
Тім Біглейзен

2
Мені особисто подобається цей сайт , хоча там є багато підручників. Освоєння Git - це не стільки вибір правильного підручника, скільки просто отримання досвіду його використання. Ви вже зробили це сьогодні :-)
Тім Біглейзен

62

Крім того, замість того, щоб додавати кожен файл вручну, ми могли б зробити щось на зразок:

git add --all

АБО

git add -A

Це також видалить усі файли, які відсутні або видалені (відстежувані файли в поточному робочому каталозі, які зараз відсутні).

Якщо ви хочете лише додати файли, які відстежуються та змінились, ви хочете це зробити

git add -u

У чому різниця між git add .& git add --all?


я пробував те саме, але відображається "попередження: неможливий доступ до <шлях>: дозвіл відмовлено" ....
vishwaraj,

Деякі люди вважають це поганою практикою, бо, ну, які файли ви щойно додали? Ви не знаєте. Історія команд Bash ніколи не буде корисним журналом ваших дій. Ви будете покладатися наосліп на ефективність вашого .gitignore, і, ймовірно, випадково вчините такі артефакти збірки, як Makefiles, коли вони насправді автоматично генеруються (як це трапляється у деяких проектах)
Скотт Прив

@Crossfit_and_Beer Я якось погоджуюся з вами, але якщо ваш gitignore зламаний, насамперед ви хочете це виправити, аніж незручно додавати кожен окремий файл або видаляти кожен файл з кешу під час використання зламаного gitignore. Крім того, статус git - ваш друг, просто для подвійної перевірки.
Viv

або ви можете git add .переконатися, що ви включили.
Eoin

15

Будь ласка, дотримуйтесь цього процесу

Перш за все встановіть git bash і створіть сховище на git

1) Перейдіть до робочого каталогу, де існує файл, який ви хочете натиснути на віддаленому, і створіть папку .git

$ git init

2) Додайте файли до нового локального сховища.

$ git add .

Примітка: поки ви знаходитесь в одній папці, переконайтеся, що ви поставили крапку після команди, якщо ви ставите шлях або не ставите крапку, що створить двозначність

3) Зафіксуйте файли, розміщені у вашому локальному сховищі.

$ git commit -m "First commit"**

4) після цього перейдіть до сховища git та скопіюйте віддалену URL-адресу

$ git remote add origin *remote repository URL

5)

$ git remote -v

Примітка: це буде запитувати user.email та user.name, просто введіть його відповідно до конфігурації

6)

$ git push origin master

це виштовхне весь присвячений код у FILE.git на сховищі

І я думаю, що ми зробили


1
Це вирішує мою проблему, я використовую git reset --hard masterдля скидання свого "крученого прогресу", і роблю це рішення, і воно спрацювало. Дякую!!
Michael Harley

1

Виконайте всі кроки.

Крок 1: ініціалізуйте git

$ git init

Крок 2: Перевірте, чи існують файли.

$git ls

Крок 3: Додайте файл

$git add filename

Крок 4: Додайте коментар для показу

$git commit -m "your comment"

Крок 5: Посилання на ваше сховище

$git remote add origin  "copy repository link  and paste here"

Крок 6: Натисніть на Git

$ git push -u origin master

0

Якщо ви вже пробували використовувати git add .команду для додавання всіх ваших файлів, що не відслідковуються, переконайтеся, що ви не знаходитесь у підпапці вашого кореневого проекту.

git add . буде розміщувати всі ваші файли в поточній підпапці.


0

Якщо хтось піклується лише про помилку, nothing added to commit but untracked files present (use "git add" to track)а не про Please move or remove them before you can merge.. Ви можете поглянути на відповіді на Git - Чи не додаватимете файли?

Тут ви знайдете принаймні 2 хороших кандидата для розглядуваної проблеми тут: що ви перебуваєте або в підпапці, або в батьківській папці, але не в власне папці репо. Якщо ви знаходитесь у каталозі на один рівень занадто високо, це, безумовно, підніме повідомлення "нічого не додано для фіксації ...", див. Мою відповідь у посиланні для деталей. Я не знаю, чи трапляється таке саме повідомлення, коли ви знаходитесь у підпапці, але цілком ймовірно. Це може відповідати вашим поясненням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.