Một ngày khác, tôi nâng cấp tiny_mce trong một dự án được kiểm soát phiên bản bằng git. Vào thời điểm đó, tôi đã thực hiện một nhánh git cho sự thay đổi và sáp nhập nó để làm chủ và xóa nhánh. Mọi thứ hoạt động tốt.Hành vi lạ lùng của git
Ngoài ra, tôi đã thay đổi repo từ xa thành một máy chủ khác và thay đổi tệp .git/config của mình. Nhưng tôi phát hiện ra rằng tôi đã phạm sai lầm như sau.
[remote "new_repo"]
url = ssh://[email protected]/~/path/to/myproject.git
fetch = +refs/heads/*:refs/remotes/new_repo/*
[branch "master"]
remote = old_repo <= WRONG
merge = refs/heads/master
Phải là remote = new_repo. Tôi sửa nó sau và nó có vẻ hoạt động tốt.
Nhưng sau đó, nếu tôi thực hiện "trạng thái git", các tệp tiny_mce cũ sẽ vượt qua tệp mới và chúng nằm trong danh sách đã thay đổi nhưng không được cam kết. Vì vậy, tôi phải "git reset --hard HEAD". Điều đó xảy ra trên bản sao khác của dự án của tôi (cũng được cập nhật qua git). Nhưng tôi không thể tái tạo nó. Dường như điều này xảy ra ngẫu nhiên. (Hoặc tôi chưa thể tìm thấy mẫu.)
Điều gì đang xảy ra và làm cách nào để khắc phục?
Dưới đây là tôi "git branch -a":
choir
* master
remotes/old_repo/master
remotes/new_repo/master
cập nhật và sửa lỗi:
Hóa ra là tiny_mce đá quý mà ứng dụng ray của tôi sử dụng sao chép tiny_mce cũ và ghi đè cái mới mỗi lần Tôi chạy "rake some_task". Tôi đã nâng cấp đá quý tiny_mce.
Bạn bằng cách nào đó sẽ phá vỡ thư mục làm việc của bạn mọi lúc. Có lẽ đó là do tài liệu tham khảo cũ (hãy nhớ rằng chi nhánh git checkout có thể kiểm tra các chi nhánh từ xa quá!). Bạn có thể mô tả đầu ra của lệnh git branch -a không? –
@AlexandrPriymak Tôi đã chỉnh sửa câu hỏi của mình để thêm "git branch -a". Cảm ơn. –
Gần đây bạn có xóa nhánh chính cục bộ và sau đó chỉ cần 'git checkout master'? –