Git Woes: edited on windows, now w/ problems on linux

Problem:

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'

What can I do to get back on track?

  • Git: Fork / Remote / Clone Concepts
  • Deploy Website using Git with multiple committers
  • Git strategy for merging to a Prod branch from two different code lines (regular release branch and a hotfix branch)
  • Why my git is not updating from 1.7.1 to 1.9.4
  • git stash unable to refresh, how to pop only some files
  • Rebasing a Detached HEAD against a master branch
  • UPDATE: please look at the following for a clearer picture (no irony intended)

    (I think the problem is one that I often encounter, that the sphinx files are platform-dependant, and I don’t know how to skip them in the pull.)

    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$ 
    

    It’s actually not a line feed problem, as I set the e text editor to use unix style line endings. tho, at this point, i don’t know what the problem is, just that I need a slolution.

    Are you ignoring that I ran `git reset –hard’ ??

  • Find when a file was deleted in Git
  • How to git-svn clone the last n revisions from a Subversion repository?
  • Images on staging server truncated after Git pull
  • Git branch change tracking in command line
  • Replace all files in git repo with the files that are on local machine
  • Git : How to reset the history of all the repositories associated with a project?
  • 2 Solutions collect form web for “Git Woes: edited on windows, now w/ problems on linux”

    It sounds like you need to set the line ending options in Windows:

    git config core.autocrlf true
    

    This will convert the line endings from LF to CRLF on Windows and back again on git add. Without this, git thinks that you changed the whole file’s line endings from LF to CRLF, which is likely to cause merge conflicts.

    Also, your description sounds like you might be trying to share the same working repository between Windows and Linux in a dual boot situation. I would not recommend this for the above reason. Use separate repositories for each OS.

    I’m not sure why you posted this whole transcript, it does show you’re not just having line ending problems. Perhaps you assume that the several problems you had all had one cause.

    I’ll guess that you created this repo on your linux system, then uploaded it to GitHub, then cloned to your Windows system. When you clone a repo, Git sets some config parameters so that it knows how to do git pull later, but when you are create a remote repository, you have to set those manually. (That’s not clearly documented anywhere that I’ve seen.)

    After creating the GitHub repo, you could have set on your linux system:

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

    These configure git so future git pull’s from this repo will merge all remote changes automatically. With these in place your pull would have worked.

    Cloning the remote repository into a subdirectory solved this very nicely, because cloning did set the configs so that pulling would work from your linux system. Misspelling ‘origin’ as ‘orgin’ may have covered up the fact that your pull would work.

    If this makes sense to you, I suggest you remove the transcript down to starting up Rails to make it easier to focus on the other problem you had.

    Git Baby is a git and github fan, let's start git clone.