Tôi vô tình loại bỏ các thay đổi của tôi trên các tệp trong cây làm việc cục bộ của tôi thông qua kiểm tra git. Các tập tin không được dàn dựng tại thời điểm này. Có thể "hoàn tác" thanh toán này không?
Tôi vô tình loại bỏ các thay đổi của tôi trên các tệp trong cây làm việc cục bộ của tôi thông qua kiểm tra git. Các tập tin không được dàn dựng tại thời điểm này. Có thể "hoàn tác" thanh toán này không?
Câu trả lời:
Tôi tin rằng nếu một tệp được sửa đổi nhưng chưa được thêm (dàn dựng), thì đó hoàn toàn là "riêng tư".
Có nghĩa là nó không thể được khôi phục bằng GIT nếu được ghi đè bằng chỉ mục hoặc phiên bản CHÍNH (trừ khi bạn có bản sao công việc hiện tại của mình ở đâu đó). "
Nội dung "riêng tư" chỉ có thể nhìn thấy trong thư mục hiện tại của bạn, nhưng không được đăng ký theo bất kỳ cách nào trong Git.
git checkout --
), tôi hy vọng nó có thể hoàn tác thao tác đó, có thể thông qua reflog
. Đó có phải là kỳ vọng sai lầm?
git checkout folders/subfolders/file
nhưng vô tình nhấn enter sau khi nhận được folder
và mất tất cả công việc. / cách phím nhập trên bàn phím của tôi 1cm và tôi thường xuyên chuyển đổi giữa các máy có bố cục bàn phím khác nhau nên thường ngón tay của tôi sẽ quen với các vị trí mới. Khó có thể tin vào năm 2018 rằng git rác tập tin mặc dù nó nói trong cuốn sách git mà git làm theo cách của nó để không mất việc.
Nếu bạn đang sử dụng IDE "chuyên nghiệp" thì rất có thể bạn có thể khôi phục các tệp từ Lịch sử cục bộ. Ví dụ, trong Rubymine, bạn có thể nhấp chuột phải vào tệp và xem lịch sử thay đổi độc lập với thay đổi git, đã lưu tôi vài lần bây giờ ^^
Nếu bạn đang làm việc trong một trình soạn thảo như Sublime Text và tệp vẫn đang được mở, bạn có thể nhấn ctrl + z và nó sẽ trở về trạng thái trước khi kiểm tra git.
Thật không may, những thay đổi của bạn bị mất. Sửa đổi riêng tư của bạn chỉ đơn giản là ghi đè. Trừ khi bạn đã làmgit stash
thực hiện thanh toán trước ...
Lấy nó từ phía sáng hơn: bây giờ bạn có thể thực hiện mọi thứ thậm chí còn tốt hơn;)
Kiểm tra lịch sử địa phương trong IDE của bạn.
Phát triển trên OS X? Sử dụng Xcode? Bạn có thể gặp may mắn!
Như được mô tả trong một nhận xét của qungu , OS X duy trì lịch sử phiên bản tự động của các tệp, ngay cả khi bạn không sử dụng cỗ máy thời gian .
Vì vậy, nếu bạn đã thổi bay những thay đổi cục bộ không có căn cứ của mình một cách bất cẩn git checkout .
, thì đây là cách bạn có thể phục hồi tất cả công việc của mình.
Nếu ai đó tìm thấy luồng này đã phá hủy một số công việc trong XCode, có một cách để lấy lịch sử AutoSave. Bản thân XCode không có mục menu để xem lịch sử AutoSave, nhưng nó lưu trữ nó. Nếu bạn mở các tệp được đề cập trong TextEdit, bạn có thể hoàn nguyên và xem qua lịch sử Tự động lưu trong Tệp> Hoàn nguyên.
Điều đó thật tuyệt vời, và hồi phục về một ngày làm việc cho tôi, ngày hôm qua.
Bạn có thể hỏi, "Tại sao UI không phải là dòng lệnh git, VCS hàng đầu được sử dụng cho công nghệ phần mềm trong2016 2017 20182019, ít nhất là sao lưu các tập tin trước khi thổi chúng đi? Giống như, bạn biết đấy, các công cụ phần mềm được viết tốt trong khoảng ba thập kỷ qua. "
Hoặc có lẽ bạn hỏi, "Tại sao tính năng lịch sử tệp cực kỳ tuyệt vời này có thể truy cập được trong TextEdit mà không phải là Xcode nơi tôi thực sự cần nó?"
Tôi và cả hai người, tôi nghĩ, sẽ cho bạn biết khá nhiều về ngành công nghiệp của chúng tôi. Hoặc có thể bạn sẽ đi và sửa những công cụ đó. Mà sẽ là siêu.
Model
không may
Trong VSCODE ctrl + z (hoàn tác) làm việc cho tôi
Tôi đã làm git checkout .
thay vìgit add .
và tất cả các thay đổi tập tin của tôi đã bị mất.
Nhưng bây giờ sử dụng command + z
trong máy mac của tôi, đã phục hồi các thay đổi và lưu lại một giai điệu công việc cho tôi.
Trong trường hợp bạn đã từng thực hiện các thay đổi trước đó (ví dụ: trước khi bắt đầu lại), điều này có thể sẽ giúp ích
Làm thế nào để phục hồi một stash bị rơi trong Git?
ngay cả khi bạn đã 'bỏ qua các thay đổi.
Một vị cứu tinh hiệu quả cho loại tình huống này là Time Machine (OS X) hoặc một hệ thống sao lưu dựa trên thời gian tương tự. Nó đã tiết kiệm cho tôi một vài lần vì tôi có thể quay lại và khôi phục chỉ một tệp đó.
Tôi vừa mới xảy ra với tôi, tôi đã kiểm tra toàn bộ thư mục chứa hàng giờ làm việc! May mắn thay tôi phát hiện ra rằng IDE Netbeans của tôi lưu giữ lịch sử của từng tệp, cho phép tôi phục hồi 99% nội dung mặc dù tôi cần sửa một số thứ theo cách thủ công.
Tôi thường có tất cả các công việc của tôi trong một thư mục dropbox. Điều này đảm bảo với tôi rằng tôi sẽ có sẵn thư mục hiện tại bên ngoài máy cục bộ và Github. Tôi nghĩ rằng đó là bước khác của tôi để đảm bảo "kiểm soát phiên bản" khác với git.Bạn có thể làm theo điều này để hoàn nguyên tệp của bạn về các phiên bản trước của tệp dropbox của bạn
Hi vọng điêu nay co ich.
Về mặt kỹ thuật thì có. Nhưng chỉ trong một số trường hợp nhất định. Ví dụ, nếu bạn có trang mã lên và bạn nhấn kiểm tra git và bạn nhận ra rằng bạn đã vô tình kiểm tra trang sai hoặc một cái gì đó. Chuyển đến trang và nhấp vào hoàn tác. (đối với tôi, lệnh + z), và nó sẽ quay trở lại chính xác vị trí của bạn trước khi bạn đạt được kiểm tra git cũ tốt.
Điều này sẽ không hoạt động nếu trang của bạn đã bị đóng, và sau đó bạn nhấn kiểm tra git. Nó chỉ hoạt động nếu trang mã thực tế đang mở
Nếu bạn làm việc với một / terminal cmd nhắc mở, và sử dụng bất kỳ lệnh git mà có thể đã cho thấy những thay đổi unstaged ( diff
, add -p
, checkout -p
, vv), và chưa đóng / terminal cmd nhắc từ đó, bạn sẽ thấy những thay đổi unstaged vẫn có sẵn nếu bạn cuộn đến nơi bạn đã chạy các lệnh git đã nói ở trên.
Anh bạn
giả sử bạn là một người rất may mắn giống như tôi đã từng, quay lại trình chỉnh sửa của bạn và thực hiện hoàn tác (lệnh + Z cho mac), bạn sẽ thấy nội dung bị mất của mình trong tệp. Hy vọng nó sẽ giúp bạn. Tất nhiên, điều này sẽ chỉ làm việc cho các tập tin hiện có.
Có thể những thay đổi của bạn không bị mất. Kiểm tra "git reflog"
Tôi trích dẫn bài viết dưới đây:
"Về cơ bản mọi hành động bạn thực hiện bên trong Git nơi lưu trữ dữ liệu, bạn có thể tìm thấy nó bên trong reflog. Git cố gắng hết sức để không làm mất dữ liệu của bạn, vì vậy nếu vì lý do nào đó bạn nghĩ rằng nó có thể, bạn có thể khai thác nó sử dụng git reflog "
Xem chi tiết:
http: // git yet.com/inter Ngay / 2009/02/09 / reflog-your-safe-net.html
git reflog
ở đây, tôi đã tìm thấy câu trả lời này khi tôi đang tìm cách hoàn tác git checkout HEAD .
- Tôi đã định gõ git reset HEAD .
- Tôi vừa thực hiện một 'git reset --soft Head ~ 1' và không biết về việc git reflog
này đã có thể lấy lại công việc tôi đã làm :)