2012-10-06 54 views
5

Đây là những gì tôi đã thử. Hy vọng rằng ai đó có một chút thời gian để xem xét điều này và đề xuất điều gì đó. Cảm ơn!Không thể tiếp tục git rebase

Edit: Tôi tin rằng tôi đã trả lời câu hỏi của riêng tôi: https://stackoverflow.com/a/12760672/906794

  • Clone repo của tôi

    $ git clone leoj3n/roots 
    Cloning into 'roots'... 
    remote: Counting objects: 3177, done. 
    remote: Compressing objects: 100% (1362/1362), done. 
    remote: Total 3177 (delta 2117), reused 2761 (delta 1792) 
    Receiving objects: 100% (3177/3177), 1.40 MiB | 609 KiB/s, done. 
    Resolving deltas: 100% (2117/2117), done. 
    Checking out files: 100% (146/146), done. 
    
  • Thay đổi thư mục

    $ cd roots 
    
  • Kiểm tra tình trạng

    roots(parent) $ git status 
    # On branch parent 
    nothing to commit (working directory clean) 
    
  • Thêm thượng nguồn

    roots(parent) $ git remote add upstream retlehs 
    roots(parent) $ git remote 
    origin 
    upstream 
    
  • Fetch

    roots(parent) $ git fetch --all 
    Fetching origin 
    Fetching upstream 
    remote: Counting objects: 70, done. 
    remote: Compressing objects: 100% (30/30), done. 
    remote: Total 56 (delta 28), reused 51 (delta 23) 
    Unpacking objects: 100% (56/56), done. 
    From git://github.com/retlehs/roots 
    * [new branch]  classic -> upstream/classic 
    * [new branch]  grunt  -> upstream/grunt 
    * [new branch]  improve_sidebar_config -> upstream/improve_sidebar_config 
    * [new branch]  master  -> upstream/master 
    * [new branch]  vcard_refactor -> upstream/vcard_refactor 
    * [new tag]   5.1.0  -> 5.1.0 
    * [new tag]   5.2.0  -> 5.2.0 
    * [new tag]   6.0.0  -> 6.0.0 
    * [new tag]   6.1.0  -> 6.1.0 
    
  • rebase parent vào upstream/master

    roots(parent) $ git rebase -i upstream/master 
    
    <<<<<< BEGIN WHAT I HAD IN vi >>>>>> 
    pick 4904103 improved url cleaning for child themes 
    s 986e6de added some is_child_theme() checks 
    s 2860aee urls now look like /child/css/* 
    s 4282ee0 Look for files in child, then in roots 
    p bf9a89a Now using Theme Hook Alliance 
    f 56d1211 Added THA utility script 
    f 7702269 Added missing hooks 
    f 14204d8 Support for multisite 
    f aca4577 No more multisite rewrites 
    f 8144b83 Revert some changes 
    pick fbf1dec Added filter to disable sidebars 
    pick 9b77e72 Added font-awesome 
    f 161864d Remove test code 
    <<<<<< END WHAT I HAD IN vi >>>>>> 
    

    Sau đó, tôi nhận được lỗi này:

    error: could not apply 4904103... improved url cleaning for child themes 
    
    When you have resolved this problem, run "git rebase --continue". 
    If you prefer to skip this patch, run "git rebase --skip" instead. 
    To check out the original branch and stop rebasing, run "git rebase --abort". 
    Could not apply 4904103... improved url cleaning for child themes 
    
  • giải quyết những mâu thuẫn

    roots(parent|REBASE-i) $ git mergetool 
    merge tool candidates: opendiff kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff diffuse ecmerge p4merge araxis bc3 emerge vimdiff 
    Merging: 
    lib/config.php 
    
    Normal merge conflict for 'lib/config.php': 
        {local}: modified file 
        {remote}: modified file 
    Hit return to start merge resolution tool (opendiff): 
    2012-10-06 05:10:11.363 FileMerge[22088:707] Unable to load platform at path /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform 
    2012-10-06 05:10:11.364 FileMerge[22088:707] Unable to load platform at path /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform 
    

    Lưu ý tôi nhận được một số lỗi chạy Opendiff.

  • Xong mâu thuẫn giải quyết, vì vậy tiếp tục

    roots(parent|REBASE-i) $ git rebase --continue 
    You must edit all merge conflicts and then 
    mark them as resolved using git add 
    
  • Huh? Kiểm tra tình trạng:

    roots(parent|REBASE-i) $ git status 
    # Not currently on any branch. 
    # You are currently rebasing. 
    # (all conflicts fixed: run "git rebase --continue") 
    # 
    # Changes to be committed: 
    # (use "git reset HEAD <file>..." to unstage) 
    # 
    # modified: lib/config.php 
    # modified: lib/htaccess.php 
    # 
    # Untracked files: 
    # (use "git add <file>..." to include in what will be committed) 
    # 
    # lib/config.php.orig 
    
  • Remove tập tin sao lưu merge

    roots(parent|REBASE-i) $ rm lib/config.php.orig 
    
    roots(parent|REBASE-i) $ git status 
    # Not currently on any branch. 
    # You are currently rebasing. 
    # (all conflicts fixed: run "git rebase --continue") 
    # 
    # Changes to be committed: 
    # (use "git reset HEAD <file>..." to unstage) 
    # 
    # modified: lib/config.php 
    # modified: lib/htaccess.php 
    # 
    
  • Tiếp tục rebase

    roots(parent|REBASE-i) $ git rebase --continue 
    You must edit all merge conflicts and then 
    mark them as resolved using git add 
    
  • Hmm, hãy thử thêm tất cả mọi thứ

    roots(parent|REBASE-i) $ git add -A 
    
    roots(parent|REBASE-i) $ git rebase --continue 
    You must edit all merge conflicts and then 
    mark them as resolved using git add 
    

Đây là thời điểm tôi từ bỏ và thực hiện điều này. câu hỏi.


Dưới đây là một số thông tin thêm:

roots(parent|REBASE-i) $ git diff-files --ignore-submodules 
:100644 100644 f65cf1dc4573c51e54d7cf3772d06caf96726616 0000000000000000000000000000000000000000 assets/js/vendor/jquery-1.8.2.min.js 

tôi nghĩ rằng nó có thể phải làm với các mergetool opendiff-chú ý đến lỗi trên.

roots(parent|REBASE-i) $ git config --list 
user.name=xxxxxx 
user.email=xxxxxx 
credential.helper=osxkeychain 
alias.pu=!git fetch origin -v; git fetch upstream -v; git merge upstream/master 
alias.co=checkout 
alias.ci=commit 
alias.rb=rebase 
color.ui=auto 
core.excludesfile=/Users/xxxxxx/.gitignore_global 
core.repositoryformatversion=0 
core.filemode=true 
core.bare=false 
core.logallrefupdates=true 
core.ignorecase=true 
core.precomposeunicode=false 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
[email protected]:leoj3n/roots.git 
branch.parent.remote=origin 
branch.parent.merge=refs/heads/parent 
remote.upstream.url=git://github.com/retlehs/roots.git 
remote.upstream.fetch=+refs/heads/*:refs/remotes/upstream/* 

Đáng ngạc nhiên, tôi đã có thể rebase trên máy tính của mình bằng cách sử dụng tortoisemerge.

+1

Từ thông báo trạng thái mà bạn nhận được, tôi cho rằng bạn phải chạy ít nhất git 1.7.12, trong trường hợp này, lỗi "Bạn phải chỉnh sửa tất cả xung đột hợp nhất và sau đó [..]" khi 'git diff-files --quiet --ignore-submodules' thoát với một mã thoát khác 0. Bạn có thể chạy 'git diff-files --ignore-submodules' và dán kết quả vào câu hỏi của bạn? –

+0

Xem bản chỉnh sửa ở cuối. – leoj3n

+0

Rất lạ - Tôi không chắc chắn tại sao 'asset/js/vendor/jquery-1.8.2.min.js' xuất hiện trong đầu ra' git diff-files', nhưng không phải là 'git status'. Tệp đó hiện diện trong cây đang hoạt động tại thời điểm này? –

Trả lời

3

Có vẻ như vấn đề là do thời gian tệp bị tắt. repo này là trên một ổ đĩa mạng và được truy cập/sửa đổi bởi cả Windows và Mac ...

Tất cả tôi cần phải làm gì, có vẻ như, là thay đổi một mục cấu hình duy nhất ...

git config --global core.trustctime false 

Các giải pháp được tìm thấy tại https://stackoverflow.com/a/5255700/906794

+2

Ai có thể nghĩ. Rất vui khi bạn tìm thấy câu trả lời của mình – Ikke

+0

Ngoài ra, hãy xem http://www.git-tower.com/blog/make-git-rebase-safe-on-osx – leoj3n

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