git отправляет неотслеживаемые файлы

~/D/s/b/h_adv_ML (master±) ▶︎︎ git ls-files --error-unmatch *.csv
test_rmse.csv
train_rmse.csv
error: pathspec 'genome-scores.csv' did not match any file(s) known to git.
error: pathspec 'genome-tags.csv' did not match any file(s) known to git.
error: pathspec 'links.csv' did not match any file(s) known to git.
error: pathspec 'movies.csv' did not match any file(s) known to git.
error: pathspec 'ratings.csv' did not match any file(s) known to git.
error: pathspec 'tags.csv' did not match any file(s) known to git.
Did you forget to 'git add'?
~/D/s/b/h_adv_ML (master±) ▶︎︎ git commit -m " clean3"
[master b31185a]  clean3
 2 files changed, 1 insertion(+), 465566 deletions(-)
 delete mode 100644 tags.csv
~/D/s/b/h_adv_ML (master) ▶︎︎ git push origin master
Counting objects: 36, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (35/35), done.
Writing objects: 100% (36/36), 192.26 MiB | 2.17 MiB/s, done.
Total 36 (delta 12), reused 0 (delta 0)
remote: Resolving deltas: 100% (12/12), completed with 1 local object.
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: 70338ad9481eef83938b427ed955775e
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File genome-scores.csv is 308.56 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: File ratings.csv is 508.73 MB; this exceeds GitHub's file size limit of 100.00 MB
To https://github.com/<...>/h_adv_ML.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://github.com/<...>/h_adv_ML.git'

Он пытается подтолкнуть их, когда они не отслеживаются! Что мне здесь не хватает? Я не уверен, почему он пытается выдвинуть "genome-scores.csv" и "ratings.csv", когда они не отслеживаются.

$ git status
On branch master
Your branch is ahead of 'origin/master' by 8 commits.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean
 $ tree
.
├── README.md
├── README.txt
├── check.py
├── check_old.py
├── code.py
├── genome-scores.csv
├── genome-tags.csv
├── links.csv
├── movies.csv
├── old_code.py
├── ratings.csv
├── read_py.py
├── tags.csv
├── test_rmse.csv
└── train_rmse.csv

1 ответ

Я уже сделал пару комментариев, но я думаю, что нашел довольно простое решение - вам нужно "раздавить" коммиты с момента последнего нажатия.

  1. Определите последний коммит, который находится на удаленном компьютере. Вы можете сделать это с git log --oneline и искать коммит с origin/master рядом с ним. Затем скопируйте идентификатор коммита, который представляет собой шестнадцатеричную строку из ~7 символов в начале строки.

  2. git reset COMMIT (например git reset abcdef0) извлечет все коммиты и "расскажет" их. Это означает, что все изменения, сделанные после этого коммита (включая этот коммит), будут удалены из Git, но сохранены в вашей файловой системе.

  3. Определите любые изменения, сделанные в коммитах сброса, которые вы хотите сохранить, и подтвердите их. Он должен сказать вам "Unstaged изменения после сброса" после предыдущей команды.

  4. Вы должны быть в состоянии отправить внесенные изменения в репозиторий Github.


Чуть более программная версия:

# get sha1 revision of origin/master and reset to that
git reset $(git rev-parse origin/master)

# git add via patch, so you can moderate what you add
git add -p

git commit
git push
Другие вопросы по тегам