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 നൽകുന്നു. ഉപയോഗിക്കുന്നത് git reflog മാലിന്യം ശേഖരിച്ചതിന് ശേഷവും ഇല്ലാതാക്കൽ ഉൾപ്പെടെയുള്ള എല്ലാ പ്രവർത്തനങ്ങളും കണ്ടെത്താൻ സഹായിക്കും. പുനഃസജ്ജീകരണങ്ങൾ, ചെക്ക്ഔട്ടുകൾ, മറ്റ് സങ്കീർണ്ണമായ പ്രവർത്തനങ്ങൾ എന്നിവ കാരണം പരിഷ്കരിച്ചതോ നഷ്ടപ്പെട്ടതോ ആയ കമ്മിറ്റുകൾ കണ്ടെത്തുന്നതിന് ഈ കമാൻഡ് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്.
ആവർത്തിച്ചുള്ള ജോലികൾ ലളിതമാക്കാൻ Git അപരനാമങ്ങളുടെ ഉപയോഗമാണ് മറ്റൊരു നിർണായക വശം. ഉദാഹരണത്തിന്, ഇല്ലാതാക്കിയ ഫയലുകൾ കണ്ടെത്തുന്നതിനും പുനഃസ്ഥാപിക്കുന്നതിനും ആവശ്യമായ കമാൻഡുകളുടെ പരമ്പരയ്ക്ക് ഒരു അപരനാമം സൃഷ്ടിക്കുന്നത് സമയം ലാഭിക്കാനും പിശകുകൾ കുറയ്ക്കാനും കഴിയും. വിവിധ ഗ്രാഫിക്കൽ യൂസർ ഇൻ്റർഫേസുകളെയും (GUIs) GitKraken, SourceTree, Git Extensions പോലുള്ള ടൂളുകളും പിന്തുണയ്ക്കുന്നു, ഇത് കമ്മിറ്റ് ചരിത്രത്തിൻ്റെ വിഷ്വൽ പ്രാതിനിധ്യം നൽകുന്നു, ഇത് ഇല്ലാതാക്കിയ ഫയലുകൾ തിരിച്ചറിയുന്നതും പുനഃസ്ഥാപിക്കുന്നതും എളുപ്പമാക്കുന്നു. ഈ ടൂളുകളും കമാൻഡുകളും പ്രയോജനപ്പെടുത്തുന്നതിലൂടെ, ഡെവലപ്പർമാർക്ക് വൃത്തിയുള്ളതും കാര്യക്ഷമവുമായ വർക്ക്ഫ്ലോ നിലനിർത്താൻ കഴിയും, നിർണായക ഫയലുകൾ ശാശ്വതമായി നഷ്ടപ്പെടുന്നില്ലെന്നും ആവശ്യമുള്ളപ്പോൾ വേഗത്തിൽ വീണ്ടെടുക്കാൻ കഴിയുമെന്നും ഉറപ്പാക്കുന്നു.
Git-ൽ ഇല്ലാതാക്കിയ ഫയലുകൾ പുനഃസ്ഥാപിക്കുന്നതിനുള്ള പതിവ് ചോദ്യങ്ങൾ
- Git-ൽ ഒരു ഫയൽ ഡിലീറ്റ് ചെയ്തപ്പോൾ ഞാൻ എങ്ങനെ കണ്ടെത്തും?
- നിങ്ങൾക്ക് ഉപയോഗിക്കാം git log --diff-filter=D --summary | grep "filename.txt" ഫയൽ ഇല്ലാതാക്കിയ പ്രതിബദ്ധത കണ്ടെത്താൻ.
- എനിക്ക് കമ്മിറ്റ് ഹാഷ് അറിയില്ലെങ്കിൽ, ഇല്ലാതാക്കിയ ഫയൽ പുനഃസ്ഥാപിക്കാൻ കഴിയുമോ?
- അതെ, നിങ്ങൾക്ക് ഇല്ലാതാക്കൽ കമ്മിറ്റിനായി തിരയാൻ കഴിയും git log അഥവാ git reflog ആവശ്യമായ ഹാഷ് കണ്ടെത്താൻ.
- കാരറ്റ് (^) ചിഹ്നം എന്താണ് ചെയ്യുന്നത് git checkout <commit-hash>^ -- filename.txt?
- നിർദ്ദിഷ്ട കമ്മിറ്റ് ഹാഷിൻ്റെ പാരൻ്റ് കമ്മിറ്റിനെയാണ് കാരറ്റ് ചിഹ്നം സൂചിപ്പിക്കുന്നത്.
- Git-ൽ ഇല്ലാതാക്കിയ ഫയലുകൾ പുനഃസ്ഥാപിക്കാൻ ഒരു ഓട്ടോമേറ്റഡ് മാർഗമുണ്ടോ?
- അതെ, ഇല്ലാതാക്കിയ ഫയലുകൾ കണ്ടെത്തുന്നതിനും പുനഃസ്ഥാപിക്കുന്നതിനുമുള്ള പ്രക്രിയ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിന് നിങ്ങൾക്ക് ബാഷ് അല്ലെങ്കിൽ പൈത്തൺ പോലുള്ള സ്ക്രിപ്റ്റുകൾ ഉപയോഗിക്കാം.
- പുനഃസ്ഥാപിച്ച ഒരു ഫയൽ എൻ്റെ ശേഖരത്തിലേക്ക് എങ്ങനെ തിരികെ ചേർക്കാം?
- ഫയൽ പുനഃസ്ഥാപിച്ച ശേഷം, ഉപയോഗിക്കുക git add filename.txt ഒപ്പം git commit -m "Restore filename.txt" ശേഖരത്തിലേക്ക് തിരികെ ചേർക്കാൻ.
- എന്താണ് git reflog ഉപയോഗിച്ചത്?
- ശാഖകളുടെ അഗ്രത്തിലും മറ്റ് റഫറൻസുകളിലും വരുത്തിയ എല്ലാ മാറ്റങ്ങളും രേഖപ്പെടുത്താൻ ഇത് ഉപയോഗിക്കുന്നു, എല്ലാ പ്രവർത്തനങ്ങളും തിരികെ കണ്ടെത്താൻ സഹായിക്കുന്നു.
- Git-ൽ ഇല്ലാതാക്കിയ ഫയലുകൾ പുനഃസ്ഥാപിക്കാൻ എനിക്ക് ഒരു GUI ഉപയോഗിക്കാമോ?
- അതെ, GitKraken, SourceTree, Git Extensions എന്നിവ പോലുള്ള ടൂളുകൾ ഫയലുകൾ കൈകാര്യം ചെയ്യുന്നതിനും പുനഃസ്ഥാപിക്കുന്നതിനുമുള്ള ഒരു ദൃശ്യ മാർഗം നൽകുന്നു.
- Git-ലെ അപരനാമം എന്താണ്, അത് എങ്ങനെ സഹായിക്കും?
- ദൈർഘ്യമേറിയ കമാൻഡുകൾക്കുള്ള കുറുക്കുവഴിയാണ് Git അപരനാമം. ആവർത്തിച്ചുള്ള ജോലികൾ ലളിതമാക്കാനും ഫയലുകൾ പുനഃസ്ഥാപിക്കുന്ന പ്രക്രിയ കൂടുതൽ കാര്യക്ഷമമാക്കാനും ഇതിന് കഴിയും.
Git ഫയൽ പുനഃസ്ഥാപിക്കുന്നതിനെക്കുറിച്ചുള്ള അന്തിമ ചിന്തകൾ
ഒരു Git റിപ്പോസിറ്ററിയിൽ ഇല്ലാതാക്കിയ ഫയൽ വിജയകരമായി പുനഃസ്ഥാപിക്കുന്നതിന്, ഇല്ലാതാക്കൽ പോയിൻ്റ് കണ്ടെത്തുന്നതിന് നിങ്ങളുടെ പ്രതിബദ്ധത ചരിത്രത്തിലൂടെ എങ്ങനെ ട്രാക്ക് ചെയ്യാമെന്ന് മനസിലാക്കേണ്ടതുണ്ട്. git log, git ചെക്ക്ഔട്ട് പോലുള്ള കമാൻഡുകൾ ഉപയോഗിക്കുന്നത് അല്ലെങ്കിൽ സ്ക്രിപ്റ്റുകൾ ഉപയോഗിച്ച് ഓട്ടോമേറ്റ് ചെയ്യുന്നത് പോലും ഈ പ്രക്രിയയെ ലളിതമാക്കുന്നു. നിങ്ങളുടെ പ്രോജക്റ്റിൻ്റെ സമഗ്രതയും തുടർച്ചയും സംരക്ഷിച്ചുകൊണ്ട് പ്രധാനപ്പെട്ട ഫയലുകൾ കാര്യക്ഷമമായി വീണ്ടെടുക്കാനാകുമെന്ന് ഈ സാങ്കേതിക വിദ്യകളിൽ പ്രാവീണ്യം ഉറപ്പാക്കുന്നു.