2008-11-28 20 views
5

Problem:Git Woes: edytowane na windows, teraz w/problemy w systemie 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' 

Co mogę zrobić, aby wrócić na tor?

UPDATE: Proszę spojrzeć na następujące dla jaśniejszego obrazu (bez ironii przeznaczone)

(myślę, że problem jest, że ja często spotykamy, że Sfinksa pliki są zależne od platformy, a ja nie wiedzieć, jak je pominąć w pull.)

[email protected]:~$ cd Rails/nutrograph/ 
[email protected]:~/Rails/nutrograph$ git rm nutrograph/ 
fatal: pathspec 'nutrograph/' did not match any files 
[email protected]:~/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. 
[email protected]:~/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 
[email protected]:~/Rails/nutrograph$ mkdir backup 
[email protected]:~/Rails/nutrograph$ cd backup/ 
[email protected]:~/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. 
[email protected]:~/Rails/nutrograph/backup$ script/server 
bash: script/server: No such file or directory 
[email protected]:~/Rails/nutrograph/backup$ cd nutrograph/ 
[email protected]:~/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 
[email protected]:~/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) 

[email protected]:~/Rails/nutrograph/backup/nutrograph$ git merge origin/master 
Already up-to-date. 
[email protected]:~/Rails/nutrograph/backup/nutrograph$ git pull 
Already up-to-date. 
[email protected]:~/Rails/nutrograph/backup/nutrograph$ cd ../.. 
[email protected]:~/.local/share/Trash/files$ cd 
[email protected]:~$ cd Rails/nutrograph/ 
[email protected]:~/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) 

[email protected]:~/Rails/nutrograph$ git merge orgin 
orgin - not something we can merge 
[email protected]:~/Rails/nutrograph$ git merge orgin/master 
orgin/master - not something we can merge 
[email protected]:~/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 
[email protected]:~/Rails/nutrograph$ git reset --hard 
HEAD is now at 1925d73 got rid of "Nutrition Facts" in view 
[email protected]:~/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 
[email protected]:~/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 
[email protected]:~/Rails/nutrograph$ git pull 
Already up-to-date. 
[email protected]:~/Rails/nutrograph$ git rebase origin/master 
vendor/plugins/haml/init.rb: needs update 
[email protected]:~/Rails/nutrograph$ git pull 
Already up-to-date. 
[email protected]:~/Rails/nutrograph$ git pull origin/master 
fatal: 'origin/master': unable to chdir or not a git archive 
fatal: The remote end hung up unexpectedly 
[email protected]:~/Rails/nutrograph$ git rebase origin/master 
vendor/plugins/haml/init.rb: needs update 
[email protected]:~/Rails/nutrograph$ rm vendor/plugins/haml/init.rb 
[email protected]:~/Rails/nutrograph$ rm vendor/plugins/haml/init.rb 
rm: cannot remove `vendor/plugins/haml/init.rb': No such file or directory 
[email protected]:~/Rails/nutrograph$ haml --rails . 
Directory ./vendor/plugins/haml already exists, overwrite [y/N]? y 
Haml plugin added to . 
[email protected]:~/Rails/nutrograph$ git rebase origin/master 
vendor/plugins/haml/init.rb: needs update 
[email protected]:~/Rails/nutrograph$ git fetch origin 
[email protected]:~/Rails/nutrograph$ git merge origin/master 
Already up-to-date. 
[email protected]:~/Rails/nutrograph$ git rebase origin/master 
vendor/plugins/haml/init.rb: needs update 
[email protected]:~/Rails/nutrograph$ git pull 
Already up-to-date. 
[email protected]:~/Rails/nutrograph$ 

To nie jest faktycznie problem nowego wiersza, jak ustawić edytor tekstowy e do korzystania unix stylu końca linii. w tym momencie nie wiem, na czym polega problem, tylko że potrzebuję spustoszenia.

Czy ignorujesz, że uruchomiłem `git reset --hard '??

Odpowiedz

10

Brzmi jak trzeba ustawić linię kończącą opcje w systemie Windows:

git config core.autocrlf true 

To przekonwertuje zakończeń linii z LF na CRLF na Windows iz powrotem na git add. Bez tego, git uważa, że ​​zmieniłeś zakończenia linii całego pliku z LF na CRLF, co prawdopodobnie spowoduje konflikty podczas scalania.

Twój opis brzmi, jakbyś próbował dzielić to samo działające repozytorium między systemem Windows i Linux w sytuacji podwójnego rozruchu. Nie polecam tego z powyższego powodu. Używaj oddzielnych repozytoriów dla każdego systemu operacyjnego.

1

Nie jestem pewien, dlaczego opublikowałeś ten cały zapis, ale pokazuje on, że nie masz problemów z zakończeniem linii. Być może zakładasz, że kilka problemów, które miałeś, miało jedną przyczynę.

Zgaduję, że utworzyłeś to repo w systemie Linux, a następnie przesłałeś go do GitHub, a następnie sklonowano do systemu Windows. Kiedy klonujesz repozytorium, Git ustawia niektóre parametry konfiguracyjne, dzięki czemu wie, jak to zrobić później, ale gdy tworzysz zdalne repozytorium, musisz je ustawić ręcznie. (. To nie jest jasno udokumentowane w dowolnym miejscu, które widziałem)

Po utworzeniu repo GitHub, mogłeś ustawić w systemie Linux:

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

Są configure git więc przyszłość git pull użytkownika z tego repo będzie automatycznie scalaj wszystkie zdalne zmiany. Z tymi na miejscu Twój pull zadziałałby.

Klonowanie zdalnego repozytorium do podkatalogu rozwiązało to bardzo ładnie, ponieważ klonowanie ustawiło konfiguracje tak, aby ciągnięcie działało z twojego systemu Linux. Błędne pisanie "pochodzenia" jako "orgin" mogło zatuszować fakt, że twoje działanie będzie działać.

Jeśli ma to dla ciebie sens, sugeruję, abyś usunął transkrypcję do uruchamiania Railsów, aby ułatwić skupienie się na innym problemie, który miałeś.