问题:
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 git@github.com: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 git@github.com: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'??
答案 0 :(得分:9)
听起来你需要在Windows中设置行结束选项:
git config core.autocrlf true
这将在Windows上将行结尾从LF转换为CRLF,然后再在git add
上转换回来。如果没有这个,git会认为您将整个文件的行结尾从LF更改为CRLF,这可能会导致合并冲突。
此外,您的描述听起来像是在双启动情况下尝试在Windows和Linux之间共享相同的工作存储库。出于上述原因,我不建议这样做。为每个操作系统使用单独的存储库。
答案 1 :(得分:1)
我不确定你为什么发布这整个成绩单,它确实表明你不仅仅是有线结束问题。也许你认为你遇到的几个问题都有一个原因。
我猜你在linux系统上创建了这个repo,然后将其上传到GitHub,然后克隆到你的Windows系统。当您克隆一个repo时,Git会设置一些配置参数,以便它稍后知道如何执行git pull
,但是当您创建一个远程存储库时,您必须手动设置它们。 (在我见过的任何地方都没有明确记录。)
创建GitHub仓库后,您可以在Linux系统上设置:
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
这些配置git,因此来自此repo的未来git pull将自动合并所有远程更改。有了这些,pull
就可以了。
将远程存储库克隆到子目录中非常好地解决了这个问题,因为克隆确实设置了配置,以便从您的Linux系统中提取。将'起源'拼错为'orgin'可能已经掩盖了你的拉动会起作用的事实。
如果这对您有意义,我建议您删除成绩单以启动Rails,以便更容易关注您遇到的其他问题。