«git status» показывает изменения, которые нужно зафиксировать, но «git push origin master» говорит: «Все актуально» - PullRequest
4 голосов
/ 24 июня 2010

У меня возникли конфликты между локальным репо и удаленным репо.

Итак, я сделал:

git stash
git pull origin master
git stash apply

// here i had merge conflicts, so i edited the files and did
git add file1
git add file2

git commit

Теперь, когда я делаю git status, он показывает кучу измененных файлов и т. Д. Но git push origin master говорит Everything up-to-date.

Есть идеи?

Ответы [ 5 ]

14 голосов
/ 24 июня 2010

Если git status показывает измененные файлы, они не будут отправлены, потому что они еще не зафиксированы.git status показывает только те изменения, которые еще не были зафиксированы (даже если они были подготовлены).

Попробуйте выполнить фиксацию еще раз и посмотрите, есть ли какие-либо сообщения об ошибках при переходе к фиксации.(Вам также может понадобиться git add файлов, которые не имели конфликты слияния, если на них повлияло то, что вы извлекли из вашего тайника - копирование не сохраняет состояние стадии.)

1 голос
/ 24 июня 2010

Ваш коммит действительно удался? Если вы действительно сделали коммит с тех пор, как потянули, возвращение к исходной точке должно было бы подтолкнуть этот коммит. Похоже, у вас нет. Тот факт, что git status показывает измененные файлы, является еще одним признаком того, что у вас его нет - в идеале, после фиксации вы получите чистое дерево; git status покажет "ничего не совершать". Если они все еще отображаются как измененные, они еще не зафиксированы.

0 голосов
/ 05 декабря 2012

Вы можете сначала сделать git commit -a -m «любое сообщение после файла изменений»

Затем выполните git push origin master, и тогда ваши изменения будут отражены и в удаленном репо.

0 голосов
/ 25 июня 2010

Это может быть само собой разумеющимся, но просто для ясности, убедитесь, что ваша локальная ветвь 'master'. Когда вы запустите git status, посмотрите, в какой ветке вы находитесь. Например, если вы создали ветку с именем 'foo' и в данный момент находитесь в этой ветке, вам нужно будет выполнить эту команду, чтобы перенести текущую ветку 'foo' в удаленную ветку 'master':

git push origin foo:master
0 голосов
/ 24 июня 2010

Две вещи:

  1. Во-первых, вы сделали «git add».и 'git commit -a', просто чтобы убедиться, что вы действительно все получили и добавили?
  2. Вы можете попробовать переключить autocrlf - 'git config core.autocrlf true', 'git config core.autocrlf false' и т. Д., Делая между ними статус git.Я постоянно сталкиваюсь с этой проблемой.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...