2009-11-03 13 views
24

Khi sử dụng Git với TortoiseGit: Có ai biết cách hoàn nguyên một tệp (hoặc một kho lưu trữ hoàn chỉnh) sang bản sửa đổi trước đó không?Git (TortoiseGit) - Làm cách nào để hoàn nguyên một tệp về bản sửa đổi trước đó và sau đó hoàn tác việc hoàn nguyên?

Ví dụ: Tôi có một kho chứa nhiều tệp. Một tệp tồn tại trong ba bản sửa đổi (1; 2; 3). Bây giờ tôi muốn thay đổi từ phiên bản 3 trở lại 2.

TortoiseGit cung cấp chức năng "Hoàn nguyên" trong hộp thoại "Hiển thị nhật ký" cho phép quay lại bản sửa đổi cụ thể, nhưng điều này sẽ hoàn nguyên toàn bộ kho lưu trữ thay vì một tệp.

Ngoài ra một khi tôi đã hoàn nguyên điều gì đó, tôi không có đầu mối làm cách nào để hoàn tác việc hoàn nguyên và chuyển về bản sửa đổi mới nhất.

Trả lời

14

Từ dòng lệnh: git checkout có lẽ là những gì bạn muốn.

Các tài liệu cho thấy một ví dụ về:

$ git checkout master~2 Makefile

để trở lại Makefile tới hai phiên bản trở lại trong ngành thạc sĩ

Từ bên trong TortoiseGit (thông qua Windows Explorer) có vẻ như bạn có thể làm điều này với các bước sau:

  • Điều hướng trong Explorer tới thư mục chứa tệp.
  • Nhấp chuột phải vào file bạn muốn phục hồi, chọn Show log từ TortoiseGit menu ngữ cảnh
  • Trong phần đầu ("đồ thị") chọn phiên bản mà có phiên bản của tập tin bạn muốn trở lại
  • Trong phần thứ ba (danh sách tập tin) kích chuột phải vào file và chọn Revert to this revision
  • Bạn sẽ nhận được một thông báo như 1 files revert to e19a77
  • +2

    Có bạn là đúng, điều này làm việc hoàn hảo với các công cụ git dòng lệnh, nhưng tôi đang tìm kiếm các chức năng tương ứng trong TortoiseGit cũng sử dụng các công cụ dòng lệnh git trong nền. – Alexander

    +0

    Dường như không thể với phiên bản TortoiseGit hiện tại. – Alexander

    +3

    Tôi nghĩ rằng tôi đã tìm ra điều này với TortoiseGit, xem câu trả lời đã chỉnh sửa. – mlibby

    18

    Trong TortoiseGit câu trả lời là để nhấn phải chuột lên thư mục dự án và chọn Show Log, sau đó nhấp chuột phải vào thay đổi bạn muốn quay lại và bấm ick Chuyển/Thanh toán cho điều này .... Nó sẽ cho phép bạn sau đó tiến hành từ nơi kỳ lạ trong ngăn xếp cam kết, hoặc chi nhánh trong trường hợp bạn có kế hoạch cam kết và muốn mọi thứ ở lại lành mạnh.

    +1

    Tôi nghĩ rằng nó sẽ thay đổi tất cả các dự án – quangkid

    6

    cập nhật câu trả lời của tôi, dựa trên những ý kiến:


    Giả cây làm việc sạch sẽ và bạn muốn:

    1. Thanh toán một số file (s) của phiên bản trước đó của nó
    2. Testing
    3. Hoàn nguyên về bản chỉnh sửa hiện tại

    1. Thanh toán một số file (s) của phiên bản trước đó của nó

      (a) Nhấp chuột phải vào tập tin mà bạn muốn phục hồi và La Chí Tường Log cho tập tin đó

      enter image description here

      (b) Nhấp chuột phải vào tệp trong danh sách tệp và thực hiện Hoàn nguyên về bản chỉnh sửa gốc

      enter image description here

      enter image description here

      (c) lặp lại (a), (b) cho đến khi bạn nhận được tất cả các file mà bạn muốn.

      enter image description here

    2. Testing

    3. Revert để phiên bản hiện tại

      (a) thực hiện Revert ... trong menu ngữ cảnh của nhà thám hiểm

      Bằng cách này, bạn có thể chọn (các) tệp bạn muốn hoàn nguyên.

      (b) hoặc cách nhanh chóng này: thực hiện Hard Reset Nhập thoại

      Bằng cách này, tất cả các file đã thay đổi hoàn nguyên. (=> Mất tất cả thay đổi dir làm việc)

      enter image description here

      enter image description here

    (Thử nghiệm trên TortoiseGit 1.8.16.1, 2.6.4.windows GFW.1, Win 10 64bit)

    +0

    Điều này là không chính xác. Phiên bản TortoiseGit là gì? Tôi không nghĩ rằng "Hoàn nguyên bản sửa đổi gốc" thậm chí còn hiện diện nữa. Hoàn nguyên là để hủy các thay đổi không gian làm việc cục bộ. Câu hỏi đặt ra ở đây là yêu cầu quay lại phiên bản cũ hơn và quay lại phiên bản hiện tại sau, không hủy phiên bản hiện tại. –

    +0

    Tính năng Hoàn nguyên vẫn đang làm điều gì đó khác với những gì người hỏi đang tìm kiếm. –

    4

    Nó cũng có thể để có được một tập tin cụ thể:

    • Nhấp chuột phải vào tập tin
    • Chọn mục menu: Git Hiện Log

    TortoiseGit hiển thị hộp thoại có danh sách tất cả các bản chỉnh sửa

    • Nhấp vào bản sửa đổi trước (2)

    Trong danh sách ở dưới cùng của hộp thoại nó cho thấy tất cả các file liên quan đến cam kết

    • Tìm các tập tin bạn đang tìm kiếm để xem
    • Nhấp chuột phải vào tập tin đó và Lưu Revision Để
    • này sẽ tiết kiệm được rằng phiên bản trước của tập tin với số lượng cam kết nối vào file

    Ví dụ: - tập tin ban đầu là tập tin .txt - phiên bản 2 sẽ save as file-67b51a8.txt

    Tôi đang sử dụng TortoiseGit v2.2.0.0

    +0

    Đây là câu trả lời hay nhất! các câu trả lời khác có lẽ là cho các phiên bản trước của TortoiseGit trước khi họ thêm chức năng này. – Justin

    0

    Đối với Rùa Version 2.3.0:

    Bạn có thể làm điều đó bằng nhiều cách , nhưng nhanh nhất tôi nghĩ là:

    1. Nhấp chuột phải vào tập tin
    2. Nhấp vào tùy chọn trình đơn "Diff với phiên bản trước"
    3. Nhấp chuột phải vào trái (trước) phiên bản của tập tin
    4. Nhấp vào tùy chọn menu "Sử dụng toàn bộ tập tin này"
    5. Lưu những thay đổi (ctrl + s)