ஒரு Git களஞ்சியத்தில் நீக்கப்பட்ட கோப்புகளை மீட்டமைத்தல்: ஒரு படி-படி-படி வழிகாட்டி

ஒரு Git களஞ்சியத்தில் நீக்கப்பட்ட கோப்புகளை மீட்டமைத்தல்: ஒரு படி-படி-படி வழிகாட்டி
ஒரு Git களஞ்சியத்தில் நீக்கப்பட்ட கோப்புகளை மீட்டமைத்தல்: ஒரு படி-படி-படி வழிகாட்டி

Git இலிருந்து நீக்கப்பட்ட கோப்புகளை மீட்டெடுக்கிறது

Git களஞ்சியங்களுடன் பணிபுரிவது பெரும்பாலும் நீக்குதல் உட்பட கோப்பு மாற்றங்களை நிர்வகிப்பதை உள்ளடக்குகிறது. தற்செயலான அல்லது வேண்டுமென்றே நீக்கப்பட்டால், ஒரு குறிப்பிட்ட கோப்பு உறுதிசெய்யப்பட்டு பின்னர் அகற்றப்பட்ட பிறகு நீங்கள் அதை மீட்டெடுக்க வேண்டிய சூழ்நிலைகளுக்கு வழிவகுக்கும். நீக்கப்பட்ட கோப்புகளை எவ்வாறு திறமையாகக் கண்டுபிடித்து மீட்டெடுப்பது என்பதைப் புரிந்துகொள்வது, உங்கள் திட்டத்தின் ஒருமைப்பாட்டைப் பேணுவதற்கு முக்கியமானது.

இந்த வழிகாட்டியில், கொடுக்கப்பட்ட கோப்பை நீக்கிய உறுதிப்பாட்டைக் கண்டறிந்து அதை உங்கள் வேலை செய்யும் நகலுக்கு மீட்டமைக்கும் செயல்முறையை நாங்கள் ஆராய்வோம். இந்தப் படிகளைப் பின்பற்றுவதன் மூலம், நீக்கப்பட்டதிலிருந்து எத்தனை கமிட்கள் செய்யப்பட்டிருந்தாலும், முக்கியமான கோப்புகள் நிரந்தரமாக இழக்கப்படாமல் இருப்பதை உறுதிசெய்யலாம்.

கட்டளை விளக்கம்
git log --diff-filter=D --summary மாற்றங்களின் சுருக்கத்தைக் காட்டும் கோப்பு நீக்குதல்களை உள்ளடக்கிய உறுதிப் பதிவுகளைக் காட்டுகிறது.
grep "filename.txt" உறுதிப் பதிவுகளில் குறிப்பிட்ட filename.txtஐக் கண்டறிய வெளியீட்டை வடிகட்டுகிறது.
awk '{print $1}' வடிகட்டப்பட்ட வெளியீட்டிலிருந்து முதல் புலத்தை பிரித்தெடுக்கிறது, இது கமிட் ஹாஷ் ஆகும்.
git checkout <commit-hash>^ -- filename.txt குறிப்பிடப்பட்ட கமிட் ஹாஷின் பெற்றோர் பொறுப்பிலிருந்து நீக்கப்பட்ட கோப்பைச் சரிபார்க்கிறது.
subprocess.check_output() ஷெல்லில் ஒரு கட்டளையை இயக்குகிறது மற்றும் பைதான் ஸ்கிரிப்ட்களில் பயன்படுத்தப்படும் அதன் வெளியீட்டை வழங்குகிறது.
subprocess.run() ஜிட் கட்டளைகளை இயக்க பைதான் ஸ்கிரிப்ட்களில் பயன்படுத்தப்படும் ஷெல்லில் ஒரு கட்டளையை இயக்குகிறது.

நீக்கப்பட்ட கோப்புகளை மீட்டமைக்க Git கட்டளைகளைப் புரிந்துகொண்டு பயன்படுத்துதல்

மேலே கொடுக்கப்பட்டுள்ள ஸ்கிரிப்ட்கள் பயனர்கள் ஒரு Git களஞ்சியத்தில் உள்ள நீக்கப்பட்ட கோப்புகளை திறமையாக கண்டுபிடித்து மீட்டமைக்க உதவும் வகையில் வடிவமைக்கப்பட்டுள்ளது. முதல் ஸ்கிரிப்ட் பயன்படுத்துகிறது git log --diff-filter=D --summary கட்டளை, இது நீக்குதல்களை உள்ளடக்கிய கமிட்களின் சுருக்கத்தைக் காட்டுகிறது. இந்த கட்டளை இணைக்கப்பட்டுள்ளது grep "filename.txt" வெளியீட்டை வடிகட்ட மற்றும் filename.txt என்ற கோப்பின் குறிப்பிட்ட நீக்குதலைக் கண்டறியவும். தி awk '{print $1}' வடிகட்டப்பட்ட வெளியீட்டிலிருந்து கமிட் ஹாஷைப் பிரித்தெடுக்க கட்டளை பயன்படுத்தப்படுகிறது. கமிட் ஹாஷ் அடையாளம் காணப்பட்டவுடன், ஸ்கிரிப்ட் பயன்படுத்துகிறது git checkout <commit-hash>^ -- filename.txt நீக்குதல் உறுதிமொழியின் பெற்றோரிடமிருந்து கோப்பை மீட்டமைக்க. இறுதியாக, மீட்டமைக்கப்பட்ட கோப்பு ஸ்டேஜிங் பகுதிக்கு மீண்டும் சேர்க்கப்பட்டு பயன்படுத்தப்படுகிறது git add filename.txt மற்றும் git commit -m "Restore filename.txt".

கூடுதலாக, ஸ்கிரிப்ட்கள் பாஷ் மற்றும் பைத்தானைப் பயன்படுத்தி இந்த செயல்முறைகளை எவ்வாறு தானியங்குபடுத்துவது என்பதை விளக்குகின்றன. பாஷ் ஸ்கிரிப்ட் ஒரு இயங்கக்கூடிய கோப்பாக படிகளை எளிதாக்குகிறது. இது கோப்புப்பெயர் வழங்கப்பட்டுள்ளதா என்பதைச் சரிபார்க்கிறது, கமிட் ஹாஷைத் தேடுகிறது, கோப்பை மீட்டமைக்கிறது மற்றும் மாற்றங்களைச் செய்கிறது. இதேபோல், பைதான் ஸ்கிரிப்ட் பயன்படுத்துகிறது subprocess.check_output() ஷெல் கட்டளைகளை இயக்கவும் மற்றும் அவற்றின் வெளியீட்டைப் பிடிக்கவும். இது நீக்குதலைக் கண்டறிய உறுதி வரலாற்றைச் செயலாக்குகிறது, பின்னர் பயன்படுத்துகிறது subprocess.run() செக் அவுட், சேர் மற்றும் கமிட் கட்டளைகளை இயக்கவும். இந்த ஸ்கிரிப்டுகள் Git இன் மேம்பட்ட அம்சங்களைப் புரிந்துகொள்வதன் முக்கியத்துவத்தையும், ஸ்கிரிப்டிங் எவ்வாறு மீண்டும் மீண்டும் செய்யும் பணிகளைத் தானியங்குபடுத்துகிறது என்பதையும் எடுத்துக்காட்டுகிறது, டெவலப்பர்கள் தங்கள் களஞ்சியங்களை நிர்வகிப்பது மற்றும் முக்கியமான கோப்புகளை திறமையாக மீட்டெடுப்பதை எளிதாக்குகிறது.

கோப்பை நீக்கிய உறுதிமொழியைக் கண்டறிதல்

Git கட்டளை வரியைப் பயன்படுத்துதல்

# To find the commit that deleted a specific file, use git log with path filter:
git log --diff-filter=D --summary | grep "filename.txt"
# This command will output the commit hash where the file was deleted.
# Note the commit hash for later use.

கமிட்டிலிருந்து நீக்கப்பட்ட கோப்பை மீட்டமைத்தல்

Git கட்டளை வரியைப் பயன்படுத்துதல்

# Once you have the commit hash, use git checkout to restore the file:
git checkout <commit-hash>^ -- filename.txt
# The caret (^) symbol is used to refer to the parent commit of the deletion commit.
# This command will restore filename.txt to your working directory.
# Add the file back to the staging area:
git add filename.txt
# Commit the restoration:
git commit -m "Restore filename.txt"
# Now, the file is restored to your repository.

ஸ்கிரிப்ட் மூலம் மறுசீரமைப்பு செயல்முறையை தானியக்கமாக்குகிறது

பாஷ் ஸ்கிரிப்டைப் பயன்படுத்துதல்

#!/bin/bash
# Script to find and restore a deleted file in a Git repository
if [ -z "$1" ]; then
  echo "Usage: $0 <filename>"
  exit 1
fi
FILENAME=$1
COMMIT_HASH=$(git log --diff-filter=D --summary | grep "$FILENAME" | awk '{print $1}')
if [ -z "$COMMIT_HASH" ]; then
  echo "File not found in commit history."
  exit 1
fi
git checkout ${COMMIT_HASH}^ -- $FILENAME
git add $FILENAME
git commit -m "Restore $FILENAME"
echo "File $FILENAME has been restored and committed."

பைத்தானைப் பயன்படுத்தி நீக்கப்பட்ட கோப்பை மீட்டமைத்தல்

பைதான் ஸ்கிரிப்டைப் பயன்படுத்துதல்

import subprocess
import sys
if len(sys.argv) != 2:
    print("Usage: python restore_file.py <filename>")
    sys.exit(1)
filename = sys.argv[1]
log_output = subprocess.check_output(["git", "log", "--diff-filter=D", "--summary"])
log_output = log_output.decode("utf-8")
commit_hash = None
for line in log_output.splitlines():
    if filename in line:
        commit_hash = line.split()[1]
        break
if not commit_hash:
    print(f"File {filename} not found in commit history.")
    sys.exit(1)
subprocess.run(["git", "checkout", f"{commit_hash}^", "--", filename])
subprocess.run(["git", "add", filename])
subprocess.run(["git", "commit", "-m", f"Restore {filename}"])
print(f"File {filename} has been restored and committed.")

Git களஞ்சியங்களில் கோப்பு மறுசீரமைப்பு மாஸ்டரிங்

Git களஞ்சியங்களுடன் பணிபுரியும் போது, ​​கோப்புகள் நீக்கப்படும் மற்றும் பின்னர் மீட்டமைக்கப்பட வேண்டிய காட்சிகளை சந்திப்பது பொதுவானது. நீக்கப்பட்ட கோப்புகளைக் கண்டுபிடித்து மீட்டமைக்க Git கட்டளைகளைப் பயன்படுத்துவதைத் தவிர, இந்தச் செயல்பாட்டில் உதவும் அடிப்படை வழிமுறைகள் மற்றும் கூடுதல் கருவிகளைப் புரிந்துகொள்வது அவசியம். Git ஆனது reflog போன்ற பல மேம்பட்ட அம்சங்களை வழங்குகிறது, இது கிளைகளின் முனை மற்றும் பிற குறிப்புகளில் செய்யப்பட்ட அனைத்து மாற்றங்களையும் பதிவு செய்கிறது. பயன்படுத்தி git reflog குப்பை சேகரிக்கப்பட்ட பிறகும், நீக்குதல் உட்பட அனைத்து செயல்களையும் மீண்டும் கண்டறிய உதவும். ரீசெட், செக் அவுட்கள் மற்றும் பிற சிக்கலான செயல்பாடுகள் காரணமாக மாற்றப்பட்ட அல்லது இழந்த கமிட்களைக் கண்டறிய இந்தக் கட்டளை மிகவும் பயனுள்ளதாக இருக்கும்.

மற்றொரு முக்கியமான அம்சம், மீண்டும் மீண்டும் செய்யும் பணிகளை எளிதாக்குவதற்கு Git மாற்றுப்பெயர்களைப் பயன்படுத்துவதாகும். எடுத்துக்காட்டாக, நீக்கப்பட்ட கோப்புகளைக் கண்டுபிடித்து மீட்டமைக்கத் தேவையான கட்டளைகளின் வரிசைக்கு மாற்றுப்பெயரை உருவாக்குவது நேரத்தைச் சேமிக்கும் மற்றும் பிழைகளைக் குறைக்கும். Git பல்வேறு வரைகலை பயனர் இடைமுகங்களையும் (GUIs) மற்றும் GitKraken, SourceTree மற்றும் Git Extensions போன்ற கருவிகளையும் ஆதரிக்கிறது, இது கமிட் வரலாற்றின் காட்சிப் பிரதிநிதித்துவத்தை வழங்குகிறது, இது நீக்கப்பட்ட கோப்புகளை அடையாளம் கண்டு மீட்டெடுப்பதை எளிதாக்குகிறது. இந்த கருவிகள் மற்றும் கட்டளைகளை மேம்படுத்துவதன் மூலம், டெவலப்பர்கள் ஒரு சுத்தமான மற்றும் திறமையான பணிப்பாய்வுகளை பராமரிக்க முடியும், முக்கியமான கோப்புகள் நிரந்தரமாக இழக்கப்படாமல் இருப்பதை உறுதிசெய்து, தேவைப்படும்போது விரைவாக மீட்டெடுக்க முடியும்.

Git இல் நீக்கப்பட்ட கோப்புகளை மீட்டெடுப்பதில் அடிக்கடி கேட்கப்படும் கேள்விகள்

  1. Git இல் கோப்பு நீக்கப்பட்டதை நான் எவ்வாறு கண்டுபிடிப்பது?
  2. நீங்கள் பயன்படுத்தலாம் git log --diff-filter=D --summary | grep "filename.txt" கோப்பை நீக்கிய உறுதியைக் கண்டறிய.
  3. கமிட் ஹாஷ் தெரியாவிட்டால், நீக்கப்பட்ட கோப்பை மீட்டெடுக்க முடியுமா?
  4. ஆம், நீங்கள் நீக்குதல் உறுதியை பயன்படுத்தி தேடலாம் git log அல்லது git reflog தேவையான ஹாஷ் கண்டுபிடிக்க.
  5. கேரட் (^) சின்னம் என்ன செய்கிறது git checkout <commit-hash>^ -- filename.txt?
  6. கேரட் சின்னம் என்பது குறிப்பிடப்பட்ட கமிட் ஹாஷின் பெற்றோர் உறுதிப்பாட்டைக் குறிக்கிறது.
  7. Git இல் நீக்கப்பட்ட கோப்புகளை மீட்டெடுக்க தானியங்கி வழி உள்ளதா?
  8. ஆம், நீக்கப்பட்ட கோப்புகளைக் கண்டுபிடித்து மீட்டமைக்கும் செயல்முறையை தானியக்கமாக்க, பாஷ் அல்லது பைதான் போன்ற ஸ்கிரிப்ட்களைப் பயன்படுத்தலாம்.
  9. மீட்டெடுக்கப்பட்ட கோப்பை எனது களஞ்சியத்தில் எவ்வாறு சேர்ப்பது?
  10. கோப்பை மீட்டமைத்த பிறகு, பயன்படுத்தவும் git add filename.txt மற்றும் git commit -m "Restore filename.txt" அதை மீண்டும் களஞ்சியத்தில் சேர்க்க.
  11. என்ன git reflog பயன்படுத்தப்பட்டது?
  12. கிளைகள் மற்றும் பிற குறிப்புகளின் நுனியில் செய்யப்பட்ட அனைத்து மாற்றங்களையும் பதிவு செய்ய இது பயன்படுகிறது, இது அனைத்து செயல்களையும் மீண்டும் கண்டுபிடிக்க உதவுகிறது.
  13. Git இல் நீக்கப்பட்ட கோப்புகளை மீட்டெடுக்க GUI ஐப் பயன்படுத்தலாமா?
  14. ஆம், GitKraken, SourceTree மற்றும் Git Extensions போன்ற கருவிகள் கோப்புகளை நிர்வகிப்பதற்கும் மீட்டெடுப்பதற்கும் ஒரு காட்சி வழியை வழங்குகிறது.
  15. Git இல் மாற்றுப்பெயர் என்றால் என்ன, அது எவ்வாறு உதவும்?
  16. Git மாற்றுப்பெயர் என்பது நீண்ட கட்டளைகளுக்கான குறுக்குவழி. இது மீண்டும் மீண்டும் செய்யும் பணிகளை எளிதாக்கும் மற்றும் கோப்புகளை மீட்டெடுக்கும் செயல்முறையை மிகவும் திறமையானதாக்கும்.

Git கோப்பு மறுசீரமைப்பு பற்றிய இறுதி எண்ணங்கள்

ஒரு Git களஞ்சியத்தில் நீக்கப்பட்ட கோப்பை வெற்றிகரமாக மீட்டெடுப்பதற்கு, நீக்குதல் புள்ளியைக் கண்டறிவதற்கான உங்கள் உறுதி வரலாற்றின் மூலம் எவ்வாறு திரும்பப் பெறுவது என்பதைப் புரிந்து கொள்ள வேண்டும். git log மற்றும் git Checkout போன்ற கட்டளைகளைப் பயன்படுத்துதல் அல்லது ஸ்கிரிப்ட்களுடன் தானியங்குபடுத்துதல் போன்றவை இந்த செயல்முறையை எளிதாக்குகிறது. இந்த நுட்பங்களில் தேர்ச்சி பெறுவது, முக்கியமான கோப்புகளை திறமையாக மீட்டெடுப்பதை உறுதிசெய்கிறது, உங்கள் திட்டத்தின் ஒருமைப்பாடு மற்றும் தொடர்ச்சியைப் பாதுகாக்கிறது.