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

Git:Lực kéo

Git ngăn bạn kéo tệp vào máy cục bộ của mình nếu bất kỳ thay đổi nào chưa được lưu hoặc chưa được theo dõi sẽ bị ghi đè bởi thao tác hợp nhất. Bạn có thể sử dụng phương pháp lực kéo để buộc Git kéo các thay đổi bạn muốn nhận trên máy tính cục bộ của mình.

Trong hướng dẫn này, chúng tôi thảo luận, có tham chiếu đến một ví dụ, cách buộc kéo nội dung của kho lưu trữ Git. Chúng ta sẽ nói về các lệnh kéo và tìm nạp git cũng như cách sử dụng tùy chọn đặt lại để buộc kéo.

Kéo là gì?

Thao tác kéo Git tải xuống tất cả siêu dữ liệu và tệp từ kho lưu trữ từ xa và cập nhật kho lưu trữ cục bộ dựa trên dữ liệu đã được truy xuất.

Kéo là phương pháp được sử dụng để đưa các tệp cục bộ của bạn phù hợp với phiên bản từ xa của kho lưu trữ. Bạn sẽ phải kéo một kho lưu trữ nếu bạn muốn tải xuống những thay đổi mà người khác đã thực hiện đối với một kho lưu trữ từ xa. Kéo không xảy ra tự động.

Việc kéo không thể xảy ra khi bạn có các tệp chưa được kiểm soát sẽ bị ghi đè. Điều này có nghĩa là bạn có một tệp trên nhánh cục bộ của mình chưa được thêm vào kho lưu trữ Git và sẽ được thay thế nếu kéo xảy ra.

Bạn không thể kéo một kho lưu trữ nếu bạn có các thay đổi chưa được lưu trên máy cục bộ của mình sẽ bị ghi đè bởi kéo.

Git:Lực kéo

Chúng tôi đang làm việc trên một kho lưu trữ có tên là ck-git, chứa mã cho một dự án web. Một cộng tác viên vừa cập nhật một tệp có tên là README.md. Chúng tôi đã cập nhật tệp đó trên máy của mình và không đẩy các thay đổi của chúng tôi vào kho lưu trữ.

Hãy xem điều gì sẽ xảy ra khi chúng tôi cố gắng thực hiện các thay đổi của mình:

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 chương trình đà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ọ.

git pull

Lệnh này trả về một lỗi:

error: Your local changes to the following files would be overwritten by merge: README.md
Please, commit your changes or stash them before you can merge.

Chúng tôi có ba lựa chọn. Chúng tôi có thể cam kết các thay đổi của mình, lưu trữ chúng hoặc buộc Git thực hiện các thay đổi. Những thứ này sẽ ghi đè lên các tệp của chúng tôi.

Chúng tôi có thể buộc Git kéo các thay đổi bằng cách tìm nạp bất kỳ thay đổi nào đã được thực hiện và sau đó đặt lại kho lưu trữ của chúng tôi để hiển thị những thay đổi đó. Hãy bắt đầu bằng cách tìm nạp các thay đổi bằng lệnh git fetch:

git fetch --all

Lệnh này truy xuất tất cả siêu dữ liệu cho những thay đổi được thực hiện đối với kho lưu trữ từ xa của chúng tôi. Tiếp theo, chúng tôi sẽ sao lưu chi nhánh hiện tại của chúng tôi. Chúng tôi làm điều này để đảm bảo rằng chúng tôi không bị mất công việc khi mã của chúng tôi bị ghi đè.

Chúng ta có thể sao lưu chi nhánh của mình bằng lệnh git branch:

git branch backup

Lệnh này tạo ra một nhánh mới được gọi là "sao lưu". Bây giờ chúng tôi đã có nhánh sao lưu của mình, chúng tôi có thể đặt lại kho lưu trữ của mình để hiển thị nội dung của kho lưu trữ từ xa của chúng tôi.

Chúng tôi sẽ sử dụng lệnh git reset để cập nhật kho lưu trữ của chúng tôi:

git reset --hard origin/master

Tùy chọn –hard tải xuống tất cả các tệp từ kho lưu trữ từ xa và thêm chúng vào bản sao làm việc cục bộ của dự án. Điều này sẽ ghi đè lên bất kỳ thay đổi nào bạn đã thực hiện.

Câu lệnh origin / master đề cập đến nhánh mà chúng tôi đang truy xuất. Chúng tôi đang tải xuống nội dung của nhánh "chính" từ kho lưu trữ từ xa "gốc" của chúng tôi.

Nếu bạn đang làm việc với một kho lưu trữ có tên chi nhánh hoặc từ xa khác, bạn có thể sử dụng công thức này để hướng dẫn cách bạn sử dụng lệnh đặt lại:

git reset --hard <remote>/<branch>

Lệnh git reset sẽ đặt lại kho lưu trữ của chúng tôi về cam kết gần đây nhất mà chúng tôi đã tìm nạp.

Lưu các thay đổi chưa được chấp nhận

Bạn có thể lưu các thay đổi chưa cam kết mà bạn đã thực hiện bằng lệnh git stash. Lệnh này cho phép bạn "lưu trữ" mã của mình sau này. Hãy tạo một kho mã của chúng ta:

git stash

Tất cả những thay đổi mà chúng tôi đã thực hiện đối với kho lưu trữ của mình sẽ được lưu trong kho lưu trữ. Khi chúng tôi sẵn sàng làm việc với những thay đổi đó một lần nữa, chúng tôi có thể "bật" kho của mình:

git stash pop

Bạn có thể đọc thêm về cách lưu với git stash trong hướng dẫn git stash của chúng tôi.

Kết luận

Bạn có thể buộc một kho lưu trữ Git lấy nội dung từ một kho lưu trữ từ xa. Để làm điều này, bạn cần tìm nạp nội dung của kho lưu trữ. Khi bạn đã tìm nạp kho lưu trữ, bạn có thể đặt lại các thay đổi của mình đối với nhánh trên kho lưu trữ từ xa mà bạn muốn cơ sở mã của mình sử dụng.

Bây giờ bạn đã có kiến ​​thức cần thiết để thực hiện thao tác kéo Git như một người chuyên nghiệp!