ಕಮಿಟ್ಗಳನ್ನು ಗುರುತಿಸುವ ಪರಿಚಯ
ಒಂದೆರಡು ತಿಂಗಳ ಹಿಂದೆ, ನನ್ನ ಪ್ರೋಗ್ರಾಂನಲ್ಲಿ ನಾನು ಬಳಸುತ್ತಿರುವ ಯೋಜನೆಗಾಗಿ ನಾನು GitHub ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಪುಲ್ ವಿನಂತಿಯನ್ನು ಮಾಡಿದ್ದೇನೆ. ನಾನು ಈ PR ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದೇನೆ ಮತ್ತು ಈಗ ಅದನ್ನು ಸ್ವಚ್ಛವಾಗಿ ಮರುಸೃಷ್ಟಿಸುವುದು ಮುಂದುವರೆಯಲು ಸುಲಭವಾದ ಮಾರ್ಗವೆಂದು ತೋರುತ್ತಿದೆ.
ಅದನ್ನು ಮಾಡಲು, ನಾನು ಸ್ಥಳೀಯ ರೆಪೊದಲ್ಲಿ ಜಿಟ್ ಡಿಫ್ ಅನ್ನು ಚಲಾಯಿಸಲು ಪ್ರಾರಂಭಿಸಿದ ಬದ್ಧತೆಯನ್ನು ಕಂಡುಹಿಡಿಯಬೇಕಾಗಿದೆ. ತಿಳಿದಿರುವ ಒಂದಕ್ಕೆ ಒಂದೆರಡು ತಿಂಗಳ ಮೊದಲು ಕಮಿಟ್ SHA ಅನ್ನು ಹುಡುಕಲು ಸುಲಭವಾದ ಮಾರ್ಗವಿದೆಯೇ? ಅಥವಾ ನಾನು ಜಿಟ್ ಲಾಗ್ ಅನ್ನು ರನ್ ಮಾಡಬೇಕೇ ಮತ್ತು ನಾನು ಪ್ರಾರಂಭಿಸಿದ ಬದ್ಧತೆಯನ್ನು ನೋಡುವವರೆಗೆ ಅದನ್ನು ದೃಷ್ಟಿಗೋಚರವಾಗಿ ಪರಿಶೀಲಿಸಬೇಕೇ?
| ಆಜ್ಞೆ | ವಿವರಣೆ |
|---|---|
| git rev-list | ಪಟ್ಟಿಗಳು ವ್ಯತಿರಿಕ್ತ ಕಾಲಾನುಕ್ರಮದಲ್ಲಿ ವಸ್ತುಗಳನ್ನು ಒಪ್ಪಿಸುತ್ತವೆ, ನಿರ್ದಿಷ್ಟ ದಿನಾಂಕದ ಮೊದಲು ಬದ್ಧತೆಯ SHA ಅನ್ನು ಕಂಡುಹಿಡಿಯಲು ಬಳಸಲಾಗುತ್ತದೆ. |
| git rev-parse | ಪರಿಷ್ಕರಣೆಯನ್ನು ಪಾರ್ಸ್ ಮಾಡುತ್ತದೆ (ಉದಾ., ಶಾಖೆಯ ಹೆಸರು ಅಥವಾ ಕಮಿಟ್ SHA) ಮತ್ತು ಅನುಗುಣವಾದ SHA-1 ಮೌಲ್ಯವನ್ನು ಔಟ್ಪುಟ್ ಮಾಡುತ್ತದೆ. |
| requests.get | GitHub API ನಿಂದ ಕಮಿಟ್ಗಳನ್ನು ಪಡೆಯಲು ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಬಳಸಲಾದ ನಿರ್ದಿಷ್ಟ URL ಗೆ GET ವಿನಂತಿಯನ್ನು ಮಾಡುತ್ತದೆ. |
| datetime.timedelta | ಎರಡು ತಿಂಗಳ ಹಿಂದಿನ ದಿನಾಂಕವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಬಳಸಲಾಗುವ ಎರಡು ದಿನಾಂಕಗಳು ಅಥವಾ ಸಮಯದ ನಡುವಿನ ವ್ಯತ್ಯಾಸದ ಅವಧಿಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. |
| datetime.isoformat | API ಪ್ರಶ್ನೆಗಳಲ್ಲಿ ಬಳಸಲು ಸೂಕ್ತವಾದ ISO 8601 ಸ್ವರೂಪದಲ್ಲಿ ದಿನಾಂಕವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. |
| git log --since | ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ದಿನಾಂಕದಿಂದ ಕಮಿಟ್ ಲಾಗ್ಗಳನ್ನು ತೋರಿಸುತ್ತದೆ, ಎರಡು ತಿಂಗಳ ಹಿಂದೆ ಕಮಿಟ್ SHA ಅನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಹುಡುಕಲು ಬಳಸಲಾಗುತ್ತದೆ. |
ಸ್ಕ್ರಿಪ್ಟ್ ಬಳಕೆಯ ವಿವರವಾದ ವಿವರಣೆ
ಮೊದಲ ಸ್ಕ್ರಿಪ್ಟ್ ಎರಡು ತಿಂಗಳ ಹಿಂದಿನ ಬದ್ಧತೆಯ SHA ಅನ್ನು ಕಂಡುಹಿಡಿಯಲು ಮತ್ತು ಪುಲ್ ವಿನಂತಿಗಾಗಿ ವ್ಯತ್ಯಾಸವನ್ನು ಸೃಷ್ಟಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್ ಆಗಿದೆ. ಇದು ಆಜ್ಞೆಯನ್ನು ಬಳಸುತ್ತದೆ ಕಮಿಟ್ ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು ಹಿಮ್ಮುಖ ಕಾಲಾನುಕ್ರಮದಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲು, ಮತ್ತು ನಂತರ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ದಿನಾಂಕದ ಮೊದಲು ಮೊದಲ ಬದ್ಧತೆಯನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತದೆ. ದಿ ಎರಡು ತಿಂಗಳ ಹಿಂದಿನ ದಿನಾಂಕವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಆಜ್ಞೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಶಾಖೆಯಲ್ಲಿನ ಇತ್ತೀಚಿನ ಬದ್ಧತೆಯ SHA ಅನ್ನು ಪಡೆಯಲು ಬಳಸಲಾಗುತ್ತದೆ. ಅಂತಿಮವಾಗಿ, git diff ಈ ಎರಡು ಬದ್ಧತೆಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ.
ಎರಡನೇ ಸ್ಕ್ರಿಪ್ಟ್ ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ ಆಗಿದ್ದು ಅದು ರೆಪೊಸಿಟರಿಯಿಂದ ಕಮಿಟ್ಗಳನ್ನು ಪಡೆಯಲು GitHub API ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತದೆ. ಇದು ಬಳಸುತ್ತದೆ GitHub ಗೆ API ಕರೆ ಮಾಡುವ ಕಾರ್ಯ, ಎರಡು ತಿಂಗಳ ಹಿಂದೆ ಬಳಸಿದ ದಿನಾಂಕದಿಂದ ಬದ್ಧತೆಗಳನ್ನು ಹಿಂಪಡೆಯುವುದು . ಹಿಂಪಡೆದ JSON ಡೇಟಾವನ್ನು ಹಳೆಯ ಮತ್ತು ಇತ್ತೀಚಿನ ಕಮಿಟ್ಗಳನ್ನು ಹುಡುಕಲು ಪಾರ್ಸ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಅವುಗಳ SHA ಗಳನ್ನು ಮುದ್ರಿಸಲಾಗುತ್ತದೆ. ಈ ಸ್ಕ್ರಿಪ್ಟ್ ಹತೋಟಿ API ವಿನಂತಿಗಾಗಿ ದಿನಾಂಕವನ್ನು ಸರಿಯಾಗಿ ಫಾರ್ಮಾಟ್ ಮಾಡುವ ವಿಧಾನ.
ಸರಿಯಾದ ವ್ಯತ್ಯಾಸವನ್ನು ಕಂಡುಹಿಡಿಯಲು Git ಆಜ್ಞೆಗಳನ್ನು ಬಳಸುವುದು
Git ಮತ್ತು ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್
#!/bin/bash# Find the commit SHA from two months ago# and get the diff for a pull requestCOMMIT_DATE=$(date -d "2 months ago" '+%Y-%m-%d')START_COMMIT=$(git rev-list -n 1 --before="$COMMIT_DATE" main)# Replace 'main' with the appropriate branch if necessaryEND_COMMIT=$(git rev-parse HEAD)echo "Start commit: $START_COMMIT"echo "End commit: $END_COMMIT"git diff $START_COMMIT $END_COMMIT > pr_diff.patch
GitHub API ನಿಂದ ಕಮಿಟ್ಗಳನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ
GitHub API ಬಳಸಿಕೊಂಡು ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್
import requestsimport datetime# Set up your GitHub token and repo detailsGITHUB_TOKEN = 'your_github_token'REPO_OWNER = 'repo_owner'REPO_NAME = 'repo_name'# Calculate the date two months agotwo_months_ago = datetime.datetime.now() - datetime.timedelta(days=60)headers = {'Authorization': f'token {GITHUB_TOKEN}'}url = f'https://api.github.com/repos/{REPO_OWNER}/{REPO_NAME}/commits?since={two_months_ago.isoformat()}'response = requests.get(url, headers=headers)commits = response.json()if commits:start_commit = commits[-1]['sha']end_commit = commits[0]['sha']print(f"Start commit: {start_commit}")print(f"End commit: {end_commit}")
Git ಲಾಗ್ನೊಂದಿಗೆ ಕಮಿಟ್ SHA ಅನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ
ಹಸ್ತಚಾಲಿತ Git ಕಮಾಂಡ್ ಲೈನ್
# Open your terminal and navigate to the local repositorycd /path/to/your/repo# Run git log and search for the commit SHAgit log --since="2 months ago" --pretty=format:"%h %ad %s" --date=short# Note the commit SHA that you needSTART_COMMIT=<your_start_commit_sha>END_COMMIT=$(git rev-parse HEAD)# Get the diff for the pull requestgit diff $START_COMMIT $END_COMMIT > pr_diff.patch
ನಿಖರವಾದ ವ್ಯತ್ಯಾಸಗಳಿಗಾಗಿ ಕಮಿಟ್ ಹಿಸ್ಟರಿಗಳನ್ನು ಮರುಪರಿಶೀಲಿಸುವುದು
ಪುಲ್ ವಿನಂತಿಗಳನ್ನು ಮತ್ತು ಕಮಿಟ್ ಹಿಸ್ಟರಿಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಮತ್ತೊಂದು ಅಗತ್ಯ ಅಂಶವೆಂದರೆ Git ನ ಶಕ್ತಿಯುತವಾದ ರಿಫ್ಲಾಗ್ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಹೇಗೆ ಬಳಸಿಕೊಳ್ಳುವುದು ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು. ರೆಫ್ಲಾಗ್ ರೆಕಾರ್ಡ್ಗಳು ಶಾಖೆಗಳ ತುದಿ ಮತ್ತು ಇತರ ಉಲ್ಲೇಖಗಳಿಗೆ ನವೀಕರಣಗಳನ್ನು ಮಾಡುತ್ತದೆ, ಶಾಖೆಗಳ ಐತಿಹಾಸಿಕ ಚಲನೆಯನ್ನು ವೀಕ್ಷಿಸಲು ಮತ್ತು ಶಾಖೆಯ ಇತಿಹಾಸದ ಮೂಲಕ ಇನ್ನು ಮುಂದೆ ತಲುಪಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೂ ಸಹ ಹಿಂದಿನ ಬದ್ಧತೆಯ ಸ್ಥಾನಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ನೀವು ಹಲವಾರು ತಿಂಗಳುಗಳ ಹಿಂದಿನ ಬದ್ಧತೆಯ SHA ಅನ್ನು ಕಂಡುಹಿಡಿಯಬೇಕಾದರೆ ನಿರ್ದಿಷ್ಟ ದಿನಾಂಕವನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ ಇದು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿರುತ್ತದೆ.
ಚಲಾಯಿಸುವ ಮೂಲಕ ಆಜ್ಞೆಯನ್ನು, ನೀವು ಶಾಖೆಯ ಮುಖ್ಯಸ್ಥ ಬದಲಾವಣೆಗಳ ಲಾಗ್ ಅನ್ನು ನೋಡಬಹುದು, ಮರುಹೊಂದಿಸುವಿಕೆಗಳು, ಮರುಹೊಂದಿಸುವಿಕೆಗಳು ಮತ್ತು ವಿಲೀನಗಳು ಸೇರಿದಂತೆ. ನೀವು ಪ್ರಾರಂಭಿಸಿದ ಕಮಿಟ್ನ SHA ಅನ್ನು ಗುರುತಿಸಲು ಈ ಲಾಗ್ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಈ ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು, ನಿಖರವಾದ ಬದ್ಧತೆಯನ್ನು ಗುರುತಿಸಲು ನೀವು ರೆಫ್ಲಾಗ್ ನಮೂದುಗಳ ಮೂಲಕ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಬಹುದು, ನಂತರ ನಿಮ್ಮ ಪುಲ್ ವಿನಂತಿಗೆ ನಿಖರವಾದ ವ್ಯತ್ಯಾಸವನ್ನು ರಚಿಸಲು ಇದನ್ನು ಬಳಸಬಹುದು.
- ತಿಂಗಳ ಹಿಂದಿನ ನಿರ್ದಿಷ್ಟ ಕಮಿಟ್ SHA ಅನ್ನು ನಾನು ಹೇಗೆ ಕಂಡುಹಿಡಿಯಬಹುದು?
- ಬಳಸಿ ದಿನಾಂಕ ಫಿಲ್ಟರ್ ಅಥವಾ ದಿ ಕಮಿಟ್ SHA ಅನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಆಜ್ಞೆ.
- ಎರಡು ಕಮಿಟ್ಗಳ ನಡುವೆ ವ್ಯತ್ಯಾಸವನ್ನು ಸೃಷ್ಟಿಸಲು ಉತ್ತಮ ಮಾರ್ಗ ಯಾವುದು?
- ಬಳಸಿ ಎರಡು ಕಮಿಟ್ಗಳ SHAಗಳೊಂದಿಗೆ ಆಜ್ಞೆ.
- GitHub API ಅನ್ನು ಬಳಸಿಕೊಂಡು ನಿರ್ದಿಷ್ಟ ಸಮಯದ ಚೌಕಟ್ಟಿನಿಂದ ನಾನು ಕಮಿಟ್ಗಳನ್ನು ಹೇಗೆ ಪಡೆಯುವುದು?
- ಬಳಸಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾದ ದಿನಾಂಕ ನಿಯತಾಂಕದೊಂದಿಗೆ GitHub API ಅನ್ನು ಬಳಸಿ ಪೈಥಾನ್ನಲ್ಲಿ.
- ನ ಉದ್ದೇಶವೇನು ಆಜ್ಞೆ?
- ಇದು ಶಾಖೆಯ ಹೆಸರುಗಳನ್ನು ಪರಿವರ್ತಿಸುತ್ತದೆ ಅಥವಾ ಉಲ್ಲೇಖಗಳನ್ನು SHA-1 ಹ್ಯಾಶ್ ಮೌಲ್ಯಗಳಾಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ.
- ಕಮಿಟ್ ಲಾಗ್ಗಳನ್ನು ನಾನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಹೇಗೆ ಪರಿಶೀಲಿಸಬಹುದು?
- ಓಡು ನಂತಹ ಸೂಕ್ತವಾದ ಫಿಲ್ಟರ್ಗಳೊಂದಿಗೆ ಬದ್ಧ ಇತಿಹಾಸವನ್ನು ವೀಕ್ಷಿಸಲು.
- ಕಮಿಟ್ SHA ಗಳನ್ನು ಹುಡುಕುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಾನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಬಹುದೇ?
- ಹೌದು, ಬ್ಯಾಷ್ ಅಥವಾ ಪೈಥಾನ್ನಂತಹ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯುವುದು ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದು.
- ಹೇಗೆ ಮಾಡುತ್ತದೆ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ನಲ್ಲಿ ಸಹಾಯ?
- ಇದು ದಿನಾಂಕ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ, ಪ್ರಸ್ತುತ ದಿನಾಂಕಕ್ಕೆ ಸಂಬಂಧಿಸಿದಂತೆ ದಿನಾಂಕಗಳನ್ನು ನಿರ್ಧರಿಸಲು ಉಪಯುಕ್ತವಾಗಿದೆ.
- ಏನು ಮಾಡುತ್ತದೆ ಪೈಥಾನ್ನಲ್ಲಿ ಕಾರ್ಯ ಮಾಡುವುದೇ?
- ಇದು GitHub ನಂತಹ API ಗಳಿಂದ ಡೇಟಾವನ್ನು ಹಿಂಪಡೆಯಲು HTTP GET ವಿನಂತಿಗಳನ್ನು ಮಾಡುತ್ತದೆ.
- ಫೈಲ್ಗೆ ಡಿಫ್ ಔಟ್ಪುಟ್ ಅನ್ನು ನಾನು ಹೇಗೆ ಉಳಿಸಬಹುದು?
- ನ ಔಟ್ಪುಟ್ ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸುತ್ತದೆ to a file using the > ನಿಮ್ಮ ಆಜ್ಞೆಯಲ್ಲಿ > ಆಪರೇಟರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಫೈಲ್ಗೆ.
ಪುಲ್ ವಿನಂತಿಗಳಿಗಾಗಿ ವ್ಯತ್ಯಾಸಗಳನ್ನು ರಚಿಸುವ ಅಂತಿಮ ಆಲೋಚನೆಗಳು
ಕ್ಲೀನ್ ಪುಲ್ ವಿನಂತಿಯನ್ನು ಮರುಸೃಷ್ಟಿಸುವುದು ಹಿಂದಿನಿಂದ ಸರಿಯಾದ ಕಮಿಟ್ SHA ಅನ್ನು ಗುರುತಿಸುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಮುಂತಾದ ವಿಧಾನಗಳನ್ನು ಬಳಸುವುದು ಮತ್ತು , ಅಥವಾ GitHub API ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುವ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸುವುದು, ಈ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸುಗಮಗೊಳಿಸಬಹುದು. ಕಮಿಟ್ SHA ಗಳ ಮರುಪಡೆಯುವಿಕೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸುವ ಮೂಲಕ ಮತ್ತು ವ್ಯತ್ಯಾಸಗಳನ್ನು ರಚಿಸುವ ಮೂಲಕ, ನೀವು ಸಮಯವನ್ನು ಉಳಿಸಬಹುದು ಮತ್ತು ನಿಖರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು. ಈ ತಂತ್ರಗಳು ಸ್ವಚ್ಛ ಮತ್ತು ಸಂಘಟಿತ ಕೋಡ್ಬೇಸ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಅತ್ಯಮೂಲ್ಯವಾಗಿವೆ, ಸುಗಮ ಸಹಯೋಗ ಮತ್ತು ಯೋಜನಾ ನಿರ್ವಹಣೆಯನ್ನು ಸುಗಮಗೊಳಿಸುತ್ತವೆ.