Git Woes: редактировалось в Windows, теперь с проблемами в Linux

Проблема:

edited files on windows, using git-bash, to fix IE7 problems

committed, pushed to github repo

booted back into linux

pulled from repo

merge conflict in dozens of files

used 'git reset --hard'

Что я могу сделать, чтобы вернуться на правильный путь?

ОБНОВЛЕНИЕ: пожалуйста, посмотрите на следующее для более четкой картины (без иронии)

(Я думаю, что проблема в том, что я часто сталкиваюсь с тем, что файлы sphinx зависят от платформы, и я не знаю, как их пропустить при вытягивании.)

jess@home:~$ cd Rails/nutrograph/
jess@home:~/Rails/nutrograph$ git rm nutrograph/
fatal: pathspec 'nutrograph/' did not match any files
jess@home:~/Rails/nutrograph$ git pull
remote: Counting objects: 29, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 15 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (15/15), done.
From [email protected]:shalunov/nutrograph
   1925d73..1ed7f46  master     -> origin/master
Updating 1925d73..1ed7f46
TODO: needs update
app/models/data_link.rb: needs update
app/models/footnote.rb: needs update
app/models/static_chart.rb: needs update
app/views/food_description/index.haml: needs update
app/views/food_description/titles.haml: needs update
app/views/site/about.html.erb: needs update
app/views/static_page/_random_foods.haml: needs update
app/views/static_page/index.haml: needs update
app/views/static_page/show.haml: needs update
app/views/static_page/sweet-potato-cooked-boiled-without-skin: needs update
config/development.sphinx.conf: needs update
config/environment.rb: needs update
db/migrate/10_create_food_comparisons.rb: needs update
db/sphinx/development/food_description_core.spa: needs update
db/sphinx/development/food_description_core.sph: needs update
db/sphinx/development/food_description_core.spl: needs update
public/static_pages/beans-snap-green-cooked-boiled-drained-with-salt: needs update
public/static_pages/butter-salted: needs update
public/static_pages/cheese-muenster: needs update
public/static_pages/sweet-potato-cooked-boiled-without-skin: needs update
test/fixtures/data_links.yml: needs update
test/fixtures/footnotes.yml: needs update
test/fixtures/static_charts.yml: needs update
test/unit/static_chart_test.rb: needs update
vendor/plugins/haml/init.rb: needs update
error: Entry 'app/views/static_page/index.haml' not uptodate. Cannot merge.
jess@home:~/Rails/nutrograph$ l
app/     CSV_files/  doc/  log/            public/   README.rdoc  spec/     test/  TODO             vendor/
config/  db/         lib/  Nutrograph.pdf  Rakefile  script/      stories/  tmp/   utf8_general_ci
jess@home:~/Rails/nutrograph$ mkdir backup
jess@home:~/Rails/nutrograph$ cd backup/
jess@home:~/Rails/nutrograph/backup$ git clone [email protected]:shalunov/nutrograph.git
Initialized empty Git repository in /home/jess/Rails/nutrograph/backup/nutrograph/.git/
remote: Counting objects: 2346, done.
remote: Compressing objects: 100% (2025/2025), done.
remote: Total 2346 (delta 958), reused 996 (delta 146)
Receiving objects: 100% (2346/2346), 19.74 MiB | 373 KiB/s, done.
Resolving deltas: 100% (958/958), done.
Checking out files: 100% (867/867), done.
jess@home:~/Rails/nutrograph/backup$ script/server
bash: script/server: No such file or directory
jess@home:~/Rails/nutrograph/backup$ cd nutrograph/
jess@home:~/Rails/nutrograph/backup/nutrograph$ script/server
=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails 2.1.2 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
/usr/lib/ruby/gems/1.8/gems/rails-2.1.2/lib/commands/servers/mongrel.rb:57:in `initialize': No such file or directory - /home/jess/Rails/nutrograph/backup/nutrograph/log/development.log (Errno::ENOENT)
    from /usr/lib/ruby/gems/1.8/gems/rails-2.1.2/lib/commands/servers/mongrel.rb:57:in `open'
    from /usr/lib/ruby/gems/1.8/gems/rails-2.1.2/lib/commands/servers/mongrel.rb:57
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:510:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:355:in `new_constants_in'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:510:in `require'
    from /usr/lib/ruby/gems/1.8/gems/rails-2.1.2/lib/commands/server.rb:39
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from script/server:3
jess@home:~/Rails/nutrograph/backup/nutrograph$ git merge
usage: git-merge [options] <remote>...
   or: git-merge [options] <msg> HEAD <remote>

    --stat                show a diffstat at the end of the merge
    -n                    don't show a diffstat at the end of the merge
    --summary             (synonym to --stat)
    --log                 add list of one-line log to merge commit message
    --squash              create a single commit instead of doing a merge
    --commit              perform a commit if the merge succeeds (default)
    --ff                  allow fast forward (default)
    -s, --strategy ...    merge strategy to use
    -m, --message ...     message to be used for the merge commit (if any)

jess@home:~/Rails/nutrograph/backup/nutrograph$ git merge origin/master
Already up-to-date.
jess@home:~/Rails/nutrograph/backup/nutrograph$ git pull
Already up-to-date.
jess@home:~/Rails/nutrograph/backup/nutrograph$ cd ../..
jess@home:~/.local/share/Trash/files$ cd
jess@home:~$ cd Rails/nutrograph/
jess@home:~/Rails/nutrograph$ git merge
usage: git-merge [options] <remote>...
   or: git-merge [options] <msg> HEAD <remote>

    --stat                show a diffstat at the end of the merge
    -n                    don't show a diffstat at the end of the merge
    --summary             (synonym to --stat)
    --log                 add list of one-line log to merge commit message
    --squash              create a single commit instead of doing a merge
    --commit              perform a commit if the merge succeeds (default)
    --ff                  allow fast forward (default)
    -s, --strategy ...    merge strategy to use
    -m, --message ...     message to be used for the merge commit (if any)

jess@home:~/Rails/nutrograph$ git merge orgin
orgin - not something we can merge
jess@home:~/Rails/nutrograph$ git merge orgin/master
orgin/master - not something we can merge
jess@home:~/Rails/nutrograph$ git rebase orgin/master
TODO: needs update
app/views/static_page/index.haml: needs update
config/development.sphinx.conf: needs update
config/environment.rb: needs update
db/sphinx/development/food_description_core.spa: needs update
db/sphinx/development/food_description_core.sph: needs update
vendor/plugins/haml/init.rb: needs update
jess@home:~/Rails/nutrograph$ git reset --hard
HEAD is now at 1925d73 got rid of "Nutrition Facts" in view
jess@home:~/Rails/nutrograph$ git pull
Updating 1925d73..1ed7f46
Fast forward
 app/views/layouts/application.haml |   25 +++++++++++--------------
 app/views/static_page/index.haml   |    6 +++---
 nutrograph                         |    1 +
 public/javascripts/tabs.js         |    4 +++-
 public/stylesheets/sass/site.sass  |   16 +++++++++-------
 public/stylesheets/site.css        |   14 ++++++++------
 6 files changed, 35 insertions(+), 31 deletions(-)
 create mode 160000 nutrograph
jess@home:~/Rails/nutrograph$ script/server
=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails 2.1.2 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment...
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready.  TERM => stop.  USR2 => restart.  INT => stop (no restart).
** Rails signals registered.  HUP => reload (without restart).  It might not work well.
** Mongrel 1.1.5 available at 0.0.0.0:3000
** Use CTRL-C to stop.


Processing SiteController#index (for 127.0.0.1 at 2008-11-28 16:45:38) [GET]
  Session ID: aa0ab6213969dc2ce78472f9c5f57258
  Parameters: {"action"=>"index", "controller"=>"site"}
  SQL (0.000153)   SET NAMES 'utf8'
  SQL (0.000077)   SET SQL_AUTO_IS_NULL=0
  StaticPage Columns (0.000841)   SHOW FIELDS FROM `static_pages`
 .
 .
 .
 .
Rendering template within layouts/application
Rendering static_page/index
Completed in 0.69965 (1 reqs/sec) | Rendering: 0.34820 (49%) | DB: 0.26384 (37%) | 200 OK [http://localhost/4000-beef-round-top-round-separable-lean-only-trimmed-to-quarter-inch-fat-select-cooked-braised]
^C** INT signal received.
Exiting
jess@home:~/Rails/nutrograph$ git pull
Already up-to-date.
jess@home:~/Rails/nutrograph$ git rebase origin/master
vendor/plugins/haml/init.rb: needs update
jess@home:~/Rails/nutrograph$ git pull
Already up-to-date.
jess@home:~/Rails/nutrograph$ git pull origin/master
fatal: 'origin/master': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
jess@home:~/Rails/nutrograph$ git rebase origin/master
vendor/plugins/haml/init.rb: needs update
jess@home:~/Rails/nutrograph$ rm vendor/plugins/haml/init.rb 
jess@home:~/Rails/nutrograph$ rm vendor/plugins/haml/init.rb 
rm: cannot remove `vendor/plugins/haml/init.rb': No such file or directory
jess@home:~/Rails/nutrograph$ haml --rails .
Directory ./vendor/plugins/haml already exists, overwrite [y/N]? y
Haml plugin added to .
jess@home:~/Rails/nutrograph$ git rebase origin/master
vendor/plugins/haml/init.rb: needs update
jess@home:~/Rails/nutrograph$ git fetch origin
jess@home:~/Rails/nutrograph$ git merge origin/master
Already up-to-date.
jess@home:~/Rails/nutrograph$ git rebase origin/master
vendor/plugins/haml/init.rb: needs update
jess@home:~/Rails/nutrograph$ git pull
Already up-to-date.
jess@home:~/Rails/nutrograph$ 

На самом деле это не проблема перевода строки, поскольку я установил в текстовом редакторе e использование окончаний строк в стиле unix. хотя на данный момент я не знаю, в чем проблема, просто мне нужен шлют.

Вы игнорируете то, что я запустил `git reset --hard '??

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
3 153
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Похоже, вам нужно установить параметры окончания строки в Windows:

git config core.autocrlf true

Это преобразует окончания строк из LF в CRLF в Windows и обратно на git add. Без этого git думает, что вы изменили окончание строки всего файла с LF на CRLF, что может вызвать конфликты слияния.

Кроме того, ваше описание звучит так, как будто вы пытаетесь использовать один и тот же рабочий репозиторий между Windows и Linux в ситуации двойной загрузки. Я бы не рекомендовал это по вышеуказанной причине. Используйте отдельные репозитории для каждой ОС.

Я не уверен, почему вы разместили всю эту стенограмму, она показывает, что у вас проблемы не только с окончанием строки. Возможно, вы полагаете, что все проблемы, которые у вас были, были вызваны одной причиной.

Я предполагаю, что вы создали это репо в своей системе Linux, затем загрузили его на GitHub, а затем клонировали в свою систему Windows. Когда вы клонируете репозиторий, Git устанавливает некоторые параметры конфигурации, чтобы он знал, как делать git pull позже, но когда вы создаете удаленный репозиторий, вы должны установить их вручную. (Это нигде из тех, что я видел, не было четко задокументировано.)

После создания репозитория GitHub вы могли бы установить в своей системе Linux:

$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master

Они настраивают git, чтобы в будущем git pull из этого репозитория автоматически объединял все удаленные изменения. С ними ваш pull работал бы.

Клонирование удаленного репозитория в подкаталог решило эту проблему очень хорошо, потому что клонирование действительно установило конфигурации, так что извлечение будет работать из вашей Linux-системы. Ошибочное написание «origin» как «orgin» могло скрыть тот факт, что ваш пул сработает.

Если это имеет для вас смысл, я предлагаю вам удалить стенограмму до запуска Rails, чтобы вам было легче сосредоточиться на другой проблеме, с которой вы столкнулись.

Другие вопросы по теме