Git பதிவை ஆராய்கிறது: விரிவான கோப்பு மாற்ற வரலாறு

Git பதிவை ஆராய்கிறது: விரிவான கோப்பு மாற்ற வரலாறு
Shell

தனிப்பட்ட கோப்புகளுக்கான Git பதிவை வெளியிடுகிறது

ஒரு திட்டத்தில் ஒரு கோப்பின் பரிணாமத்தைப் புரிந்துகொள்வது பயனுள்ள பதிப்புக் கட்டுப்பாட்டிற்கு முக்கியமானது. Git, ஒரு பிரபலமான பதிப்பு கட்டுப்பாட்டு அமைப்பு, மாற்றங்களைக் கண்காணிக்க சக்திவாய்ந்த கட்டளைகளை வழங்குகிறது. இவற்றில், git log கட்டளையானது கமிட் ஹிஸ்டரிகளைக் காண்பிக்கும் அதன் திறனுக்காக தனித்து நிற்கிறது.

இருப்பினும், விரிவான பகுப்பாய்விற்கு உறுதி வரலாற்றைப் பார்ப்பது போதுமானதாக இருக்காது. டெவலப்பர்கள் ஒரு கோப்பில் உள்ள குறிப்பிட்ட உள்ளடக்க மாற்றங்களை அடிக்கடி பார்க்க வேண்டும். கமிட் வரலாற்றை மட்டுமல்ல, கோப்பு உள்ளடக்கத்தில் உள்ள விரிவான மாற்றங்களையும் பார்க்க Git ஐ எவ்வாறு பயன்படுத்துவது என்பதை இந்தக் கட்டுரை ஆராய்கிறது.

கட்டளை விளக்கம்
--follow ஒரு கோப்பு மறுபெயரிடப்பட்டாலும் அதன் வரலாறு கண்காணிக்கப்படுவதை உறுதி செய்கிறது.
--pretty=format பதிவு வெளியீட்டு வடிவமைப்பைத் தனிப்பயனாக்குகிறது.
awk பேட்டர்ன் ஸ்கேனிங் மற்றும் செயலாக்கத்திற்குப் பயன்படுத்தப்படும் ஸ்கிரிப்டிங் மொழி.
os.popen பைதான் ஸ்கிரிப்ட்டில் இருந்து ஷெல் கட்டளையை இயக்கி வெளியீட்டை வழங்குகிறது.
split() ஒவ்வொரு வார்த்தையும் ஒரு பட்டியல் உருப்படியாக இருக்கும் பட்டியலாக ஒரு சரத்தை பிரிக்கிறது.
sys.argv பைதான் ஸ்கிரிப்ட்டுக்கு அனுப்பப்பட்ட கட்டளை வரி வாதங்களின் பட்டியல்.
print() தரவை நிலையான வெளியீட்டிற்கு வெளியிடுகிறது.

ஸ்கிரிப்ட் செயல்பாட்டின் விரிவான விளக்கம்

வழங்கப்பட்ட ஸ்கிரிப்டுகள், Git ஐப் பயன்படுத்தி ஒரு குறிப்பிட்ட கோப்பில் செய்யப்பட்ட மாற்றங்களின் விரிவான வரலாற்றைப் பார்க்க பயனர்களுக்கு உதவும் வகையில் வடிவமைக்கப்பட்டுள்ளன. ஷெல் ஸ்கிரிப்ட் கோப்புப்பெயர் வழங்கப்பட்டுள்ளதா எனச் சரிபார்ப்பதன் மூலம் தொடங்குகிறது; இல்லையெனில், அது ஒரு பயன்பாட்டு செய்தியைக் காட்டி வெளியேறுகிறது. ஒரு கோப்பின் பெயர் வழங்கப்படும் போது, ​​அது ஒரு மாறிக்கு இதை ஒதுக்குகிறது, பின்னர் கோப்பு மறுபெயரிடப்பட்டாலும் கோப்பு வரலாற்றைக் கண்காணிக்க **--follow** விருப்பத்துடன் **git log** கட்டளையை இயக்குகிறது. பதிவு வெளியீட்டைத் தனிப்பயனாக்க **--pretty=format** விருப்பம் பயன்படுத்தப்படுகிறது, இது கமிட் ஹாஷ், ஆசிரியர், தேதி மற்றும் கமிட் செய்தியைக் காட்டுகிறது. ஸ்கிரிப்ட் பின்னர் லாக் அவுட்புட் வரியை வரியாக படிக்கிறது. கோப்பில் கோப்புப் பெயர் இருந்தால், அது கமிட் ஹாஷைப் பிரித்தெடுத்து **git show** கட்டளையைப் பயன்படுத்தி கோப்பின் உள்ளடக்கங்களை அந்தக் கமிட்டில் இருந்தபடியே காண்பிக்கும்.

பைதான் ஸ்கிரிப்ட் இதேபோன்ற செயல்பாட்டை அடைகிறது. இது **os** மற்றும் **sys** போன்ற தேவையான தொகுதிகளை இறக்குமதி செய்கிறது, பின்னர் கோப்பு பெயரை ஒரு வாதமாக எடுக்கும் **get_git_log** செயல்பாட்டை வரையறுக்கிறது. இந்த செயல்பாடு ஷெல் ஸ்கிரிப்ட் போன்ற விருப்பங்களுடன் **git log** கட்டளையை உருவாக்குகிறது. பதிவு வெளியீடு படிக்கப்பட்டு தனிப்பட்ட வரிகளாக பிரிக்கப்படுகிறது. கோப்பின் பெயரைக் கொண்ட ஒவ்வொரு வரிக்கும், அது கமிட் ஹாஷைப் பிரித்தெடுத்து, கோப்பின் உள்ளடக்கங்களைக் காட்ட **git show** கட்டளையை உருவாக்குகிறது. கோப்புப்பெயர் ஸ்கிரிப்ட்டுக்கு ஒரு வாதமாக வழங்கப்படவில்லை என்றால், அது ஒரு பயன்பாட்டு செய்தியை அச்சிட்டு வெளியேறும். இந்த ஸ்கிரிப்ட் பைத்தானின் ஷெல் கட்டளைகள் மற்றும் சரம் கையாளுதல் ஆகியவற்றைக் கையாளும் திறனைப் பயன்படுத்தி விரிவான கோப்பு மாற்ற வரலாறுகளைப் பார்ப்பதற்கு ஒரு வலுவான தீர்வை வழங்குகிறது.

விரிவான கோப்பு மாற்றங்களைக் காண Git Log ஐப் பயன்படுத்தவும்

விரிவான ஜிட் பதிவு பகுப்பாய்வுக்கான ஷெல் ஸ்கிரிப்ட்

# Shell script to view file change history with details
#!/bin/bash

# Check if a filename is provided
if [ -z "$1" ]; then
  echo "Usage: $0 <filename>"
  exit 1
fi

filename=$1

# Display the commit history and diff for each commit
git log --follow --pretty=format:"%h - %an, %ar : %s" --name-status $filename | while read line; do
  if [[ $line == *".*" ]]; then
    commit=$(echo $line | awk '{print $1}')
    git show $commit:$filename
  else
    echo $line
  fi
done

பைதான் மூலம் ஜிட் பதிவை தானியக்கமாக்குகிறது

பைதான் ஸ்கிரிப்ட் பிரித்தெடுக்க மற்றும் Git பதிவு விவரங்களைக் காண்பிக்கும்

import os
import sys

def get_git_log(filename):
    log_command = f"git log --follow --pretty=format:'%h - %an, %ar : %s' --name-status {filename}"
    logs = os.popen(log_command).read().strip().split('\n')
    for log in logs:
        if filename in log:
            commit = log.split()[0]
            diff_command = f"git show {commit}:{filename}"
            diff = os.popen(diff_command).read().strip()
            print(diff)
        else:
            print(log)

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python script.py <filename>")
        sys.exit(1)
    filename = sys.argv[1]
    get_git_log(filename)

Git இல் கோப்பு வரலாற்றைப் பார்ப்பதற்கான மேம்பட்ட நுட்பங்கள்

அடிப்படை கூடுதலாக git log கட்டளை, ஒரு கோப்பின் வரலாற்றை இன்னும் விரிவாக பகுப்பாய்வு செய்ய Git பல மேம்பட்ட விருப்பங்களை வழங்குகிறது. அத்தகைய ஒரு விருப்பம் git blame, ஒரு கோப்பின் ஒவ்வொரு வரியையும் கடைசியாக மாற்றிய திருத்தம் மற்றும் ஆசிரியர் என்ன என்பதைக் காட்டுகிறது. ஒரு குறிப்பிட்ட மாற்றம் எப்போது செய்யப்பட்டது மற்றும் யாரால் செய்யப்பட்டது என்பதைக் கண்காணிக்க இது நம்பமுடியாத அளவிற்கு பயனுள்ளதாக இருக்கும். மற்றொரு சக்திவாய்ந்த கருவி git diff, உடன் இணைந்து பயன்படுத்தலாம் git log ஒவ்வொரு உறுதிப்பாட்டிலும் அறிமுகப்படுத்தப்பட்ட உண்மையான மாற்றங்களைக் காட்ட. பயன்படுத்தி git log -p, ஒவ்வொரு கமிட்டிலும் செய்யப்பட்ட மாற்றங்களின் விரிவான பார்வையை அளித்து, கமிட் வரலாற்றுடன் பேட்ச் (வேறுபாடு) தகவலைக் காண்பிக்கலாம்.

உறுதி வரலாற்றின் மேலும் வரைகலை பிரதிநிதித்துவத்திற்கு, கருவிகள் போன்றவை gitk அல்லது git log --graph பணியமர்த்த முடியும். இந்த கட்டளைகள் உறுதி வரலாற்றை ஒரு வரைபடமாக காட்சிப்படுத்துகின்றன, இது கிளை மற்றும் ஒன்றிணைக்கும் செயல்பாடுகளைப் புரிந்துகொள்வதை எளிதாக்குகிறது. கூடுதலாக, Git ஐ IDE களுடன் ஒருங்கிணைத்தல் அல்லது SourceTree, GitKraken அல்லது GitHub டெஸ்க்டாப் போன்ற GUI கருவிகளைப் பயன்படுத்துவது உறுதியான வரலாறு மற்றும் மாற்றங்களை ஆராய்வதற்கான உள்ளுணர்வு இடைமுகத்தை வழங்கும். இந்தக் கருவிகள் பெரும்பாலும் குற்றம் சார்ந்த காட்சிகள், விரிவான வேறுபாடுகள் மற்றும் வரலாற்று வரைபடங்கள் போன்ற அம்சங்களை உள்ளடக்கி, Git இன் சக்திவாய்ந்த பதிப்புக் கட்டுப்பாட்டுத் திறன்களின் பயன்பாட்டினை மற்றும் அணுகலை மேலும் மேம்படுத்துகிறது.

Git இல் கோப்பு வரலாற்றைப் பார்ப்பது பற்றிய பொதுவான கேள்விகள் மற்றும் பதில்கள்

  1. Git இல் ஒரு கோப்பின் உறுதி வரலாற்றை நான் எவ்வாறு பார்ப்பது?
  2. பயன்படுத்த git log -- [filename] ஒரு குறிப்பிட்ட கோப்பின் கமிட் வரலாற்றைக் காண கட்டளை.
  3. ஒரு கோப்பிற்கான ஒவ்வொரு கமிட்டிலும் செய்யப்பட்ட மாற்றங்களை நான் எப்படிப் பார்ப்பது?
  4. பயன்படுத்த git log -p -- [filename] ஒவ்வொரு உறுதிப்பாட்டிற்கும் இணைப்பு (வேறுபாடு) தகவலைப் பார்க்க கட்டளை.
  5. என்ன செய்கிறது git blame செய்ய கட்டளையிடவா?
  6. தி git blame கட்டளை திருத்தம் மற்றும் ஆசிரியர் கடைசியாக ஒரு கோப்பின் ஒவ்வொரு வரியையும் மாற்றியமைத்ததைக் காட்டுகிறது.
  7. கமிட் வரலாற்றை நான் எப்படி வரைபடமாகப் பார்க்க முடியும்?
  8. பயன்படுத்த git log --graph கமிட் வரலாற்றை வரைபடமாக காட்சிப்படுத்த கட்டளை.
  9. Git வரலாற்றைக் காண வரைகலை கருவிகள் உள்ளதா?
  10. ஆம், போன்ற கருவிகள் SourceTree, GitKraken, மற்றும் GitHub Desktop Git வரலாற்றைப் பார்ப்பதற்கு வரைகலை இடைமுகங்களை வழங்குகிறது.
  11. மறுபெயரிடப்பட்ட கோப்பில் மாற்றங்களை எவ்வாறு கண்காணிப்பது?
  12. பயன்படுத்த git log --follow -- [filename] மறுபெயர்கள் முழுவதும் வரலாற்றைக் கண்காணிக்க கட்டளை.
  13. IDE க்குள் ஒரு கோப்பின் வரலாற்றைப் பார்க்க முடியுமா?
  14. ஆம், விஷுவல் ஸ்டுடியோ கோட் மற்றும் IntelliJ IDEA போன்ற பல IDEகள் உள்ளமைக்கப்பட்ட Git வரலாற்றைப் பார்க்கும் திறன்களைக் கொண்டுள்ளன.

Git கோப்பு வரலாறு பகுப்பாய்வுக்கான விரிவான நுட்பங்கள்

அடிப்படை கூடுதலாக git log கட்டளை, ஒரு கோப்பின் வரலாற்றை இன்னும் விரிவாக பகுப்பாய்வு செய்ய Git பல மேம்பட்ட விருப்பங்களை வழங்குகிறது. அத்தகைய ஒரு விருப்பம் git blame, ஒரு கோப்பின் ஒவ்வொரு வரியையும் கடைசியாக மாற்றிய திருத்தம் மற்றும் ஆசிரியர் என்ன என்பதைக் காட்டுகிறது. ஒரு குறிப்பிட்ட மாற்றம் எப்போது செய்யப்பட்டது மற்றும் யாரால் செய்யப்பட்டது என்பதைக் கண்காணிக்க இது நம்பமுடியாத அளவிற்கு பயனுள்ளதாக இருக்கும். மற்றொரு சக்திவாய்ந்த கருவி git diff, உடன் இணைந்து பயன்படுத்தலாம் git log ஒவ்வொரு உறுதிப்பாட்டிலும் அறிமுகப்படுத்தப்பட்ட உண்மையான மாற்றங்களைக் காட்ட. பயன்படுத்தி git log -p, ஒவ்வொரு கமிட்டிலும் செய்யப்பட்ட மாற்றங்களின் விரிவான பார்வையை அளித்து, கமிட் வரலாற்றுடன் பேட்ச் (வேறுபாடு) தகவலைக் காண்பிக்கலாம்.

உறுதி வரலாற்றின் மேலும் வரைகலை பிரதிநிதித்துவத்திற்கு, கருவிகள் போன்றவை gitk அல்லது git log --graph பணியமர்த்த முடியும். இந்த கட்டளைகள் உறுதி வரலாற்றை ஒரு வரைபடமாக காட்சிப்படுத்துகின்றன, இது கிளை மற்றும் ஒன்றிணைக்கும் செயல்பாடுகளைப் புரிந்துகொள்வதை எளிதாக்குகிறது. கூடுதலாக, Git ஐ IDE களுடன் ஒருங்கிணைத்தல் அல்லது SourceTree, GitKraken அல்லது GitHub டெஸ்க்டாப் போன்ற GUI கருவிகளைப் பயன்படுத்துவது, உறுதியான வரலாறு மற்றும் மாற்றங்களை ஆராய்வதற்கான உள்ளுணர்வு இடைமுகத்தை வழங்கும். இந்தக் கருவிகள் பெரும்பாலும் குற்றம் சார்ந்த காட்சிகள், விரிவான வேறுபாடுகள் மற்றும் வரலாற்று வரைபடங்கள் போன்ற அம்சங்களை உள்ளடக்கி, Git இன் சக்திவாய்ந்த பதிப்பு கட்டுப்பாட்டு திறன்களின் பயன்பாட்டினை மற்றும் அணுகலை மேலும் மேம்படுத்துகிறது.

நுட்பங்களை மூடுதல்

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