Cách khôi phục mã bị biến mất sau lệnh Git

Cách khôi phục mã bị biến mất sau lệnh Git
Cách khôi phục mã bị biến mất sau lệnh Git

Khôi phục mã bị mất từ ​​hoạt động Git

Việc sử dụng lệnh Git trong Visual Studio Code đôi khi có thể dẫn đến những hậu quả không lường trước được, chẳng hạn như làm mất đi những thay đổi hiện tại của bạn. Tình huống này thường xảy ra khi bạn quên lưu trữ các thay đổi của mình trước khi lấy các bản cập nhật từ kho lưu trữ từ xa.

Trong bài viết này, chúng ta sẽ khám phá một tình huống phổ biến trong đó các tệp đã thêm và mã hiện tại của bạn biến mất sau khi chạy một loạt lệnh Git. Chúng tôi cũng sẽ cung cấp các bước để giúp bạn lấy lại mã bị mất và ngăn điều này xảy ra trong tương lai.

Yêu cầu Sự miêu tả
git reflog Hiển thị nhật ký của tất cả các cập nhật tham chiếu, hữu ích cho việc khôi phục các cam kết bị mất.
git checkout <commit_hash> Chuyển sang một cam kết cụ thể, hữu ích để xem hoặc khôi phục các tệp từ cam kết đó.
git checkout -b <branch_name> Tạo một nhánh mới và chuyển sang nhánh đó, hữu ích cho việc tách biệt các thay đổi.
git stash drop Xóa một ngăn cụ thể, được sử dụng để dọn dẹp sau khi áp dụng các thay đổi đã được cất giữ.
git merge recover-branch Hợp nhất các thay đổi từ nhánh khôi phục vào nhánh hiện tại, hữu ích cho việc tích hợp công việc đã khôi phục.
#!/bin/bash Cho biết sự bắt đầu của tập lệnh Bash, được sử dụng để tự động hóa các chuỗi lệnh.

Hiểu quá trình khôi phục

Các tập lệnh được cung cấp được thiết kế để giúp bạn khôi phục các thay đổi bị mất sau khi thực hiện sai một chuỗi lệnh Git. Kịch bản đầu tiên liên quan đến việc sử dụng git reflog để tìm cam kết nơi các thay đổi của bạn bị mất và sau đó sử dụng git checkout để chuyển sang cam kết đó và tạo một nhánh mới để lưu các thay đổi của bạn. Điều này cho phép bạn hợp nhất các thay đổi đã khôi phục trở lại nhánh chính của mình. Các lệnh như git checkout -bgit merge là rất quan trọng để tách biệt và tích hợp các thay đổi một cách hiệu quả.

Tập lệnh thứ hai trình bày cách tự động hóa quy trình lưu trữ các thay đổi, lấy các bản cập nhật từ kho lưu trữ từ xa và áp dụng các thay đổi được lưu trữ. Tập lệnh này sử dụng một chuỗi lệnh bắt đầu bằng git stash để lưu các thay đổi chưa được cam kết, theo sau là git pull để cập nhật kho lưu trữ cục bộ và git stash apply để áp dụng lại những thay đổi đã được lưu trữ. Nó cũng bao gồm các lệnh để giải quyết xung đột và dọn dẹp kho lưu trữ bằng git stash drop, đảm bảo quy trình làm việc trôi chảy và giảm thiểu nguy cơ mất việc.

Khôi phục tập tin bị mất sau lệnh Git

Sử dụng Git trong mã Visual Studio

# Step 1: Check the git reflog to find the lost commit
git reflog
# Step 2: Find the commit hash where you lost your changes
# Step 3: Checkout that commit to recover your files
git checkout <commit_hash>
# Step 4: Create a new branch from this commit to save your changes
git checkout -b recover-branch
# Step 5: Merge your changes back to your current branch
git checkout main
git merge recover-branch
# Step 6: Delete the recovery branch if no longer needed
git branch -d recover-branch

Khôi phục các thay đổi đã được lưu trữ sau khi kéo Git

Lệnh Git Stash và Pull

# Step 1: Stash your changes before pulling
git stash
# Step 2: Pull the latest changes from the remote repository
git pull
# Step 3: Apply your stashed changes
git stash apply
# Step 4: If conflicts occur, resolve them
git add .
git commit -m "Resolved merge conflicts"
# Step 5: Clean up the stash if everything is resolved
git stash drop

Sử dụng tập lệnh để tự động hóa quy trình

Tập lệnh Bash cho hoạt động Git

#!/bin/bash
# Script to automate git stash, pull, and apply changes
echo "Stashing current changes..."
git stash
echo "Pulling latest changes from remote..."
git pull
echo "Applying stashed changes..."
git stash apply
echo "Resolving any merge conflicts..."
git add .
git commit -m "Resolved conflicts after stash apply"
echo "Cleaning up the stash..."
git stash drop

Xử lý xung đột hợp nhất và ngăn ngừa mất dữ liệu

Khi làm việc với Git, xung đột hợp nhất có thể xảy ra, đặc biệt khi các thay đổi được thực hiện đối với cùng một dòng mã ở các nhánh khác nhau. Để xử lý việc này, Git cung cấp một số công cụ và lệnh. Các số 8 lệnh giúp bạn thấy sự khác biệt giữa các nhánh hoặc các cam kết, cho phép bạn hiểu xung đột có thể phát sinh ở đâu. Sau khi xác định được xung đột, bạn có thể sử dụng trình chỉnh sửa để giải quyết xung đột theo cách thủ công.

Sau khi giải quyết xung đột, điều quan trọng là thêm các tệp đã giải quyết bằng cách sử dụng git add và cam kết những thay đổi. Để tránh mất dữ liệu, hãy luôn đảm bảo công việc của bạn được cam kết trước khi thực hiện các thay đổi mới. sử dụng git stash trước khi thao tác kéo có thể tạm thời lưu các sửa đổi cục bộ của bạn và git stash pop có thể áp dụng lại chúng sau đó, giữ cho công việc của bạn an toàn trong suốt quá trình.

Các câu hỏi thường gặp về lệnh Git và khôi phục dữ liệu

  1. Mục đích của là gì git reflog?
  2. git reflog theo dõi các cập nhật ở đầu các nhánh, cho phép bạn khôi phục các cam kết bị mất.
  3. Làm cách nào để giải quyết những xung đột nảy sinh sau git stash apply?
  4. Sau khi áp dụng các thay đổi được lưu trữ, hãy sử dụng git status để xác định xung đột, giải quyết chúng theo cách thủ công và cam kết.
  5. làm gì git stash drop LÀM?
  6. git stash drop xóa một mục stash cụ thể khỏi danh sách các stash.
  7. Làm cách nào để khôi phục các tệp đã được thêm nhưng không được cam kết?
  8. Sử dụng git fsck để tìm những đốm màu và cây lủng lẳng, sau đó git show để khôi phục nội dung.
  9. Tôi nên làm gì trước khi chạy git pull để tránh mất những thay đổi?
  10. Luôn cất giữ hoặc cam kết các thay đổi của bạn trước khi lấy các bản cập nhật mới bằng cách sử dụng git stash hoặc git commit.
  11. Tôi có thể tự động hóa quy trình lưu trữ, kéo và áp dụng không?
  12. Có, bạn có thể tạo tập lệnh với bash hoặc một shell khác để tự động hóa các lệnh Git này.
  13. Làm thế nào git checkout -b giúp khôi phục công việc bị mất?
  14. Nó cho phép bạn tạo một nhánh mới từ một cam kết cụ thể, tách biệt các thay đổi để khôi phục.