2012-07-24 36 views
19

Mặc dù danh hiệu dường như tương tự như câu hỏi trước, tôi không thể tìm ra giải pháp cho cho trường hợp đơn giản của tôi:Làm thế nào để làm cho GIT bỏ qua những thay đổi của tôi

  • tôi cam kết chi nhánh của tôi 'ABCD': git commit -a .....
  • Sau đó, quyết định truy cập vào cam kết trước đó như vậy: git checkout 2387687326487
  • Ở đây tôi đã thực hiện một số thay đổi chỉ dành cho mục đích thử nghiệm và tôi không muốn giữ chúng
  • Tôi đã hoàn tất, tôi muốn quay lại cam kết mới nhất của mình (một lần nữa: bỏ qua những thay đổi mà tôi đã thực hiện với cam kết cũ): dấu phẩy nd git checkout 'ABCD' cho lỗi:

Your local changes to the following files will be overwritten by checkout....please commit or stash...

trong khi tôi không muốn cam kết hoặc cất giấu hoặc bất cứ điều gì. Tôi chỉ muốn trở về nhà :) tôi nên làm gì?

+0

Bằng cách bỏ qua, bạn có vẻ có nghĩa là "âm thầm loại bỏ khi thay đổi séc hoặc chi nhánh". Tôi có đọc chính xác câu hỏi của bạn không?Bỏ qua có ý nghĩa chuyên môn hơn đối với tôi trong thế giới kiểm soát nguồn; cụ thể: "loại trừ các tệp bị bỏ qua khỏi (các) cam kết này (và/hoặc tương lai)." –

Trả lời

21

Nếu bạn chắc chắn rằng bạn không muốn giữ lại những thay đổi của bạn, dòng sau sẽ làm:

git checkout -f 'ABCD' 

Tùy chọn '-f' là viết tắt của lực lượng.

9

Để hoàn tác thay đổi địa phương và trở về trạng thái từ các cam kết bạn có thể:

git reset --hard 
40

Sử dụng chỉ

git checkout . 

sẽ loại bỏ bất kỳ thay đổi không bị giam trong thư mục hiện (dấu chấm có nghĩa là hiện tại danh mục).

EDIT để đáp ứng với @GokulNK:

Nếu bạn muốn giữ lại những thay đổi đó để sử dụng trong tương lai, bạn có 2 lựa chọn:

  • git stash: điều này sẽ tiết kiệm được những thay đổi đó trong một ngăn xếp. Bạn có thể áp dụng các thay đổi cho bản sao làm việc của mình sau này bằng cách sử dụng git stash pop
  • git diff > changes.patch: Điều này sẽ lưu các thay đổi đó vào tệp changes.patch. Nếu bạn muốn áp dụng chúng vào bản sao làm việc của bạn, bạn có thể làm như vậy: git apply changes.patch.
+0

Tùy chọn đơn giản! Cảm ơn – Dinaiz

+0

Có cách nào để lưu các thay đổi đó vào một tệp trước khi thực hiện thanh toán git hay không. –

+0

@GokulNK xem chỉnh sửa –

7

Ngoài các giải pháp được nêu bạn có thể giấu những thay đổi

git stash 

Thanh toán chi nhánh của bạn

git checkout 'ABCD' 

Và cuối cùng, khi bạn chắc chắn rằng bạn không cần bất cứ điều gì từ cất giấu thay đổi và đã kiểm tra hai lần với gitk hoặc gitg, vứt bỏ dấu gạch chéo:

git stash drop 

Đó là cách ưa thích của tôi, vì nó an toàn hơn.

+0

Đây cũng là cách tôi làm điều đó một cách an toàn – triswill227

Các vấn đề liên quan