Computer >> Máy Tính >  >> Lập trình >> Lập trình

Lỗi:Các tệp cây làm việc không được theo dõi sau sẽ bị ghi đè bởi Merge

Lỗi ở trên thường được kích hoạt khi chúng tôi không sao chép kho lưu trữ mà chúng tôi đang cố gắng lấy từ đó. Các dự án có thể giống hệt nhau, nhưng chúng tôi có thể đang làm việc trên một dự án cục bộ trong khi cố gắng lấy nó từ repo trên Github vì nó có thể có các tệp hoặc tính năng khác mà chúng tôi muốn kết hợp trên phiên bản cục bộ của mình.

Có một số cách để khắc phục điều này.

Báo cho Chi nhánh cục bộ theo dõi Chi nhánh từ xa

Chúng ta có thể làm điều này bằng cách sử dụng lệnh dưới đây.

git branch --track <branch-name> origin/<branch-name>

Bằng cách này, nhánh từ xa trở thành một đối tác của máy chủ từ xa. Sau đó, hãy thực hiện trạng thái git để xem sự khác biệt giữa hai repo.

Staging và Stashing

Để kéo các tệp cục bộ không bị ghi đè từ kiểm soát phiên bản, chúng tôi cũng có thể phân chia và sau đó lưu trữ bằng cách sử dụng các lệnh bên dưới.

git add -A 
git stash
git pull

Với git add -A, chúng tôi đang dàn dựng tất cả các thay đổi. Nó cũng giống như git add ở chỗ nó trông giống tất cả

cây làm việc và thêm tất cả các đường làm việc vào các giai đoạn thay đổi, đã thay đổi, mới hoặc không bị bỏ qua. Ngoài ra, nó cũng hoạt động giống như git add -u ở chỗ nó xem xét các tệp đã được theo dõi và thực hiện các thay đổi đối với các tệp đó nếu chúng đã bị xóa hoặc nếu chúng khác nhau.

Với git stash, chúng tôi đang thực hiện các thay đổi không cam kết theo giai đoạn và không đóng gói, lưu trữ chúng để sử dụng trong tương lai, sau đó hoàn nguyên chúng từ một bản sao đang hoạt động. Sau đó, chúng tôi có thể tự do thực hiện các thay đổi như kéo tệp mới.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

Tìm nạp và Đặt lại

Nếu cả hai cách trên đều không hiệu quả với bạn, hãy thử tìm nạp và đặt lại. Bởi vì chúng ta sẽ sử dụng –hard trên tùy chọn này, điều quan trọng là ít nhất phải thử hai cách trên vì –hard là một lệnh tiềm ẩn nguy hiểm loại bỏ tất cả các thay đổi chưa được cam kết.

Vui lòng thực hiện trạng thái git trước khi thử sửa lỗi bên dưới để đảm bảo đầu ra của bạn trống.

git fetch --all
git reset --hard origin/<branch-name>

Với git fetch –all, chúng ta có thể tìm nạp tất cả các nhánh từ xa. Tìm nạp sẽ cập nhật bản sao cục bộ của các chi nhánh từ xa, nhưng sẽ không cập nhật các chi nhánh cục bộ theo dõi các chi nhánh từ xa. Để đạt được điều này, chúng ta cần thực hiện git pull –all.

Với git reset –hard origin / , về cơ bản chúng ta đang nói “vứt bỏ mọi thứ nằm trong nhánh cục bộ của tôi và làm cho nó giống như nhánh từ xa của tôi”. Nó loại bỏ tất cả các thay đổi theo giai đoạn và không theo giai đoạn.

Kết luận

Lỗi:các tệp cây làm việc không được kiểm soát sau đây sẽ bị ghi đè bằng cách hợp nhất được kích hoạt khi chúng tôi đang cố gắng kéo một nhánh từ xa trong khi ở trên một nhánh cục bộ. Các dự án có thể giống hệt nhau, nhưng dự án cục bộ cần có khả năng theo dõi điều khiển từ xa để kéo thành công.

Lỗi này thường xảy ra khi nhà phát triển quên sao chép một repo. Các cách khác để khắc phục lỗi này là dàn dựng và lưu trữ hoặc tìm nạp và đặt lại, chỉ nên thử nếu hai phương pháp đầu tiên không thành công.