Git rebase không thành công, 'Các thay đổi cục bộ của bạn đối với các tệp sau sẽ bị ghi đè bằng cách hợp nhất'. Không có thay đổi cục bộ?


104

Đây là bản ghi của tôi từ việc cố gắng hợp nhất nhánh sửa lỗi của tôi vào nhánh chính của tôi để chuẩn bị đẩy nó ngược dòng. Đã có một số thay đổi ngược dòng được kéo vào chính kể từ khi nhánh sửa lỗi được tạo và hiện nó từ chối rebase.

Các tệp mà nó ném lỗi không bị khác biệt khi mở. không có tệp nào được thêm, xóa hoặc đổi tên. Không có gì bị bỏ qua và không có gì là không được theo dõi hoặc được dàn dựng hoặc không được sắp xếp. Tôi hoàn toàn bối rối về lý do tại sao rebase không thành công.

Tôi đang sử dụng OS X 10.6.6 và git 1.7.4

.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git rebase bug586-test master-test
First, rewinding head to replay your work on top of it...
Applying: - comiitting code related to api permissions
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
error: Your local changes to the following files would be overwritten by merge:
    inc/data.inc
    templates/apipermissions_tpl.inc
    templates/currencies_tpl.inc
Please, commit your changes or stash them before you can merge.
Aborting
Failed to merge in the changes.
Patch failed at 0001 - comiitting code related to api permissions

When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git status
# Not currently on any branch.
nothing to commit (working directory clean)



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git rebase --abort
HEAD is now at 5efccf1 - comiitting code related to api permissions



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git log -n10 --oneline
5efccf1 - comiitting code related to api permissions
a8a5ee4 Style changes for IE
cfca618 Style changes for IE
8a69de6 Style changes for IE
8946585 - comiitting code related to api permissions - fixed an html error in the currencies template
5fba0a9 Merges the 1.11b branch bugfixes and changes into trunk
ef57049 Andrew Commiting on Blakes behalf on changes he made to transfers; Also an Indue GW balance fix; debitcarupload fix for LSN
69e4313 Fixed an issue with Support From email
9058fb6 Sets the svn property svn:eol-style to LF, to enforce unix style line endings
240839e Fixes up a lot of the whitespace issues.



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git checkout bug586-test 
Switched to branch 'bug586-test'



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git log -n10 --oneline  
b7b1f8a Resolves #586, Postback on deposit
5fba0a9 Merges the 1.11b branch bugfixes and changes into trunk
ef57049 Andrew Commiting on Blakes behalf on changes he made to transfers; Also an Indue GW balance fix; debitcarupload fix for LSN
69e4313 Fixed an issue with Support From email
9058fb6 Sets the svn property svn:eol-style to LF, to enforce unix style line endings
240839e Fixes up a lot of the whitespace issues.
cf27b6f - bug that came up with transferring. The transfer page had a hidden field called to, which was taking precedence over cards and usercard which would throw the system out a bit
7c21a81 Fixes #603, new add transaction form, journalled.
01e6292 Removes a pile of resource forks
880c5bc - bug that came up with transferring. The transfer page had a hidden field called to, which was taking precedence over cards and usercard which would throw the system out a bit



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git rebase master-test bug586-test
First, rewinding head to replay your work on top of it...
Applying: Resolves #586, Postback on deposit
Using index info to reconstruct a base tree...
<stdin>:52: trailing whitespace.
                'name' => 'Invoice Transfer Out', 
<stdin>:175: trailing whitespace.

warning: 2 lines add whitespace errors.
Falling back to patching base and 3-way merge...
error: Your local changes to the following files would be overwritten by merge:
    templates/deposit_tpl.inc
Please, commit your changes or stash them before you can merge.
Aborting
Failed to merge in the changes.
Patch failed at 0001 Resolves #586, Postback on deposit

When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git rebase --abort
HEAD is now at b7b1f8a Resolves #586, Postback on deposit

Bạn nên đăng nội dung của trạng thái git, nội dung của gitignore của bạn và ls trong các thư mục được đề cập một cách riêng biệt, để dễ đọc hơn. Điều đó có thể giúp một số, ít nhất.
Kzqai

Bạn có bất kỳ cài đặt crlf hoặc bất kỳ điều gì không? Rebase không nên tạo một cây công việc bẩn thỉu như vậy. Và git statusđiều đó có thể hữu ích là khi rebase bị lỗi. Nó từ chối chạy với một cái cây bẩn thỉu; chúng tôi biết nó sạch sẽ trước khi bạn bắt đầu. Đó là trạng thái khi có những thay đổi địa phương đó gây ra một vấn đề.
Cascabel

Bạn có chắc chắn về thứ tự của các tham số cho git rebase không? Ref đầu tiên là ref để rebase, trong khi ref thứ hai tùy chọn là ref sẽ được kiểm tra đầu tiên. Có lẽ bạn nên hoán đổi chúng.
Laurent Pireyn

Câu trả lời:


191

Đây là câu trả lời giống như một trong những câu hỏi khác của tôi đang gặp rắc rối.

Tôi đang sử dụng máy Mac và sự thay đổi cấu hình khó hiểu này dường như đã khắc phục tất cả các tai ương của tôi liên quan đến các thay đổi không theo giai đoạn khi không có thay đổi nào.

git config --global core.trustctime false

Tôi nghĩ rằng nó liên quan đến sự khác biệt giữa thời gian tệp windows, thời gian tệp linux và thời gian tệp mac. ai biết, hãy bình luận nếu bạn làm.

Cập nhật: Bài đăng trên blog này giải thích những gì đang xảy ra, đại loại là.


1
Cảm ơn! Tôi chưa bao giờ nghĩ ra điều này.
Christopher Pickslay

1
Điều tương tự ở đây Chris - Tôi chắc chắn muốn biết điều gì đã khiến điều này có hiệu quả với tôi.
karlbecker_com 21/12/12

Thật không may, điều này đã không làm việc cho tôi. Thoát Xcode - mặc dù các tệp mà Git phàn nàn không có trong dự án - đã giúp ích.
Không phổ biến

1
Tôi đang sử dụng SuSE sử dụng git-svn để cam kết với máy chủ SuSE svn ở múi giờ khác. Bất kể lời giải thích là gì, điều này cũng đã khắc phục được vấn đề cho tôi.
Jonathan Hartley

5
Dưới đây là lời giải thích về những gì có thể là nguyên nhân git-tower.com/blog/make-git-rebase-safe-on-osx/# ! Có vẻ như nó liên quan đến quá trình chạy lại trong nền.
schmunk

48

Về câu trả lời của Joshua Hogendorn: đối với tôi, có vẻ như việc để Xcode mở trong khi làm việc trên kho lưu trữ với git dẫn đến những vấn đề này. Nó thậm chí còn dẫn đến tình huống git đã cam kết một thứ gì đó mà tôi nghĩ rằng đã lưu trữ (và vẫn còn sau đó) nhưng Xcode chỉ ghi vào hệ thống tệp ngay trong quá trình rebase.

Vì vậy: Hãy đóng dự án Xcode của bạn trước khi bạn làm việc trên repo với git nếu bạn muốn an toàn và sau đó có thể bạn không cần cài đặt sai core.trustctime.


Có lẽ bạn đã có một số loại cài đặt "tự động lưu tệp sau N phút" hoạt động trong IDE của bạn? Đừng làm thế.
Mikko Rantalainen

4
Tôi đã cố gắng… và làm việc cho tôi! Đóng xcode trước khi thực hiện rebase. Lãng phí nhiều thời gian mà không có gì. Cảm ơn !
Nicolas Lauquin

Tôi gặp các lỗi tương tự như trên mặc dù tôi đang sử dụng Aptana Studio 3. Khi tôi thoát Aptana, rebase đã hoạt động. Tôi đã tắt tích hợp git của Aptana vài ngày trước. Hoặc là nó không thực sự tắt hoặc tôi nên khởi động lại Aptana.
Bill Hoag

3
Đối mặt với vấn đề tương tự khi dự án đang mở trong Visual Studio 2013. Việc đóng dự án đã giải quyết được vấn đề.
Mohammad Dehghan

3
Nói chung, điều này có vẻ giống như sự cố với các tệp bị khóa trong quá trình rebase. Đối với tôi, nó đang webpack --watchchạy.
Marc Stober
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.