2008-11-28 30 views
5

Vấn đề:Git tai ương: thay đổi nội dung trên cửa sổ, bây giờ w/vấn đề trên 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' 

tôi có thể làm gì để lấy lại phong độ?

UPDATE: hãy nhìn vào những điều sau đây cho một bức tranh rõ ràng hơn (không mỉa mai dự định)

(Tôi nghĩ vấn đề là người mà tôi thường gặp phải, rằng các tập tin Sphinx là nền tảng phụ thuộc, và tôi không biết làm thế nào để bỏ qua chúng trong kéo.)

[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$ 

Nó thực sự không phải là một vấn đề thức ăn đường, như tôi đã thiết lập các soạn thảo văn bản điện tử để sử dụng unix phong cách kết thúc dòng. tho, tại thời điểm này, tôi không biết vấn đề là gì, chỉ cần tôi cần một sự giải thể.

Bạn có bỏ qua việc tôi chạy `git reset --hard 'không ??

Trả lời

10

Có vẻ như bạn cần phải thiết lập các tùy chọn dòng kết thúc trong Windows:

git config core.autocrlf true 

này sẽ chuyển đổi kết thúc dòng từ LF để CRLF trên Windows và ngược lại trên git add. Nếu không có điều này, git nghĩ rằng bạn đã thay đổi kết thúc của toàn bộ tập tin từ LF thành CRLF, điều này có khả năng gây xung đột hợp nhất.

Ngoài ra, mô tả của bạn có vẻ như bạn đang cố gắng chia sẻ cùng một kho lưu trữ làm việc giữa Windows và Linux trong tình huống khởi động kép. Tôi sẽ không đề nghị điều này vì lý do trên. Sử dụng kho lưu trữ riêng biệt cho từng hệ điều hành.

1

Tôi không chắc chắn lý do tại sao bạn đăng toàn bộ bản ghi này, nó cho thấy bạn không chỉ có vấn đề về kết thúc dòng. Có lẽ bạn cho rằng một số vấn đề bạn đã có tất cả có một nguyên nhân.

Tôi đoán bạn đã tạo repo này trên hệ thống Linux của mình, sau đó tải nó lên GitHub, sau đó được nhân bản vào hệ thống Windows của bạn. Khi bạn sao chép một repo, Git thiết lập một số tham số cấu hình để nó biết làm thế nào để làm git pull sau đó, nhưng khi bạn tạo một kho lưu trữ từ xa, bạn phải đặt chúng theo cách thủ công. (. Đó không phải tài liệu rõ ràng bất cứ nơi nào mà tôi đã nhìn thấy)

Sau khi tạo repo GitHub, bạn có thể thiết lập trên hệ thống Linux của bạn:

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

Những cấu hình git vì vậy tương lai git pull từ repo này sẽ hợp nhất tất cả các thay đổi từ xa một cách tự động. Với những thay đổi này, pull của bạn sẽ hoạt động.

Nhân bản kho lưu trữ từ xa vào thư mục con đã giải quyết điều này rất độc đáo, vì nhân bản đã thiết lập các cấu hình để kéo sẽ hoạt động từ hệ thống Linux của bạn. Lỗi chính tả 'xuất xứ' là 'orgin' có thể đã che đậy thực tế là việc kéo của bạn sẽ hoạt động.

Nếu điều này có ý nghĩa với bạn, tôi khuyên bạn nên xóa bảng điểm để bắt đầu Rails để dễ dàng tập trung vào vấn đề khác mà bạn gặp phải.

Các vấn đề liên quan