Git ಕಮಿಟ್ ರಿವರ್ಸಲ್ನ ಅವಲೋಕನ
ಸಾಫ್ಟ್ವೇರ್ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ, Git ನೊಂದಿಗೆ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣವನ್ನು ನಿರ್ವಹಿಸುವುದು ಅತ್ಯಗತ್ಯ. ಕೆಲವೊಮ್ಮೆ, ಡೆವಲಪರ್ಗಳು ಪ್ರಾತ್ಯಕ್ಷಿಕೆಗಳು ಅಥವಾ ಇತರ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಪರೀಕ್ಷಿಸುವಂತಹ ಕಾರ್ಯಗಳಿಗಾಗಿ ಶಾಖೆಗಳನ್ನು ಬದಲಾಯಿಸುವ ಮೊದಲು ತಮ್ಮ ಕೆಲಸದ ಸ್ಥಿತಿಯನ್ನು ಉಳಿಸಲು ತಾತ್ಕಾಲಿಕ ಬದ್ಧತೆಗಳನ್ನು ಮಾಡುತ್ತಾರೆ. ಈ ಅಭ್ಯಾಸವು ಕೆಲಸದ ಹರಿವನ್ನು ಹೊಂದಿಕೊಳ್ಳುವಂತೆ ಮಾಡುತ್ತದೆ ಆದರೆ ಶಾಶ್ವತವಾಗದ ತಾತ್ಕಾಲಿಕ ಬದಲಾವಣೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು.
ಮಾಡಿದ ಕೆಲಸವನ್ನು ಕಳೆದುಕೊಳ್ಳದೆ ಕಮಿಟ್ಗಳನ್ನು ಹಿಂತಿರುಗಿಸುವ ತಂತ್ರಗಳ ಅಗತ್ಯವನ್ನು ಇದು ಪರಿಚಯಿಸುತ್ತದೆ. ನೀವು ತಾತ್ಕಾಲಿಕವಾಗಿ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಿದ್ದರೆ ಮತ್ತು ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ನ ಪ್ರಗತಿಗೆ ಧಕ್ಕೆಯಾಗದಂತೆ ಹಿಂತಿರುಗಬೇಕಾದರೆ, ಮಾರ್ಪಾಡುಗಳನ್ನು ಉಳಿಸಿಕೊಂಡು ಈ ಕಮಿಟ್ಗಳನ್ನು ಹೇಗೆ ರದ್ದುಗೊಳಿಸುವುದು ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಬಹಳ ಮುಖ್ಯ.
ಆಜ್ಞೆ | ವಿವರಣೆ |
---|---|
git reset --soft HEAD^ | ಪ್ರಸ್ತುತ ಶಾಖೆಯಲ್ಲಿನ ಕೊನೆಯ ಬದ್ಧತೆಯನ್ನು ರದ್ದುಗೊಳಿಸುತ್ತದೆ, ಆದರೆ ಬದಲಾವಣೆಗಳನ್ನು ಹಂತ ಹಂತವಾಗಿ ಬಿಡಲಾಗಿದೆ (ಅಂದರೆ, ಪುನಃ ಒಪ್ಪಿಸಲು ಸಿದ್ಧವಾಗಿದೆ). |
git reset HEAD~1 | ಪ್ರಸ್ತುತ ಶಾಖೆಯನ್ನು ಒಂದು ಕಮಿಟ್ನಿಂದ ಹಿಂದಕ್ಕೆ ಸರಿಸುತ್ತದೆ, ಕೊನೆಯ ಕಮಿಟ್ ಅನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ತೆಗೆದುಹಾಕುತ್ತದೆ ಆದರೆ ವರ್ಕಿಂಗ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಬದಲಾವಣೆಗಳನ್ನು ಬಿಡುತ್ತದೆ. |
git add . | ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿರುವ ಎಲ್ಲಾ ಬದಲಾದ ಫೈಲ್ಗಳನ್ನು ಸ್ಟೇಜಿಂಗ್ ಪ್ರದೇಶಕ್ಕೆ ಸೇರಿಸುತ್ತದೆ, ಅವುಗಳನ್ನು ಬದ್ಧತೆಗೆ ಸಿದ್ಧಪಡಿಸುತ್ತದೆ. |
git commit -m "Your message here" | ಪ್ರಸ್ತುತ ಹಂತದಲ್ಲಿರುವ ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳೊಂದಿಗೆ ಹೊಸ ಬದ್ಧತೆಯನ್ನು ರಚಿಸುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರು ಒದಗಿಸಿದ ಬದ್ಧತೆಯ ಸಂದೇಶವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. |
git push origin development-branch | ಸ್ಥಳೀಯ 'ಅಭಿವೃದ್ಧಿ-ಶಾಖೆ'ಯಿಂದ ಅನುಗುಣವಾದ ದೂರಸ್ಥ ಶಾಖೆಗೆ ತಳ್ಳುತ್ತದೆ. |
git push origin development-branch -f | ರಿಮೋಟ್ ಶಾಖೆಗೆ ಬದ್ಧತೆಗಳನ್ನು ಬಲವಂತವಾಗಿ ತಳ್ಳುತ್ತದೆ, ರಿಮೋಟ್ ರೆಪೊಸಿಟರಿಯಲ್ಲಿನ ಬದಲಾವಣೆಗಳನ್ನು ಸಮರ್ಥವಾಗಿ ತಿದ್ದಿ ಬರೆಯುತ್ತದೆ. ಎಚ್ಚರಿಕೆಯಿಂದ ಬಳಸಲಾಗಿದೆ. |
Git ರಿವರ್ಶನ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳ ವಿವರಣೆ
ಹಿಂದೆ ಒದಗಿಸಲಾದ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಕೋಡ್ಬೇಸ್ಗೆ ಮಾಡಿದ ಮಾರ್ಪಾಡುಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳದೆ Git ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಬದಲಾವಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ರಿವರ್ಸ್ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ದಿ git reset --soft HEAD^ ಆಜ್ಞೆಯು ಪ್ರಮುಖವಾಗಿದೆ, ಏಕೆಂದರೆ ಇದು ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳನ್ನು ಒಂದು ಹಂತದ ಸ್ಥಿತಿಯಲ್ಲಿ ಇರಿಸಿಕೊಂಡು ಪ್ರಸ್ತುತ ಶಾಖೆಯಲ್ಲಿನ ಇತ್ತೀಚಿನ ಬದ್ಧತೆಯನ್ನು ರದ್ದುಗೊಳಿಸುತ್ತದೆ. ಬದ್ಧತೆಯನ್ನು ಅಕಾಲಿಕವಾಗಿ ಅಥವಾ ಸರಳವಾಗಿ ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿ ಮಾಡಿದಾಗ ಇದು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ. ಫೈಲ್ ಮಾರ್ಪಾಡುಗಳನ್ನು ಉಳಿಸಿಕೊಂಡು ಬದ್ಧತೆಯನ್ನು ಹಿಂತಿರುಗಿಸುವ ಸಾಮರ್ಥ್ಯವು ಡೆವಲಪರ್ಗಳಿಗೆ ಅಗತ್ಯವಿರುವ ಬದಲಾವಣೆಗಳನ್ನು ಮರುಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ಮತ್ತು ಮರುಹೊಂದಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
ಮರುಹೊಂದಿಸಿದ ನಂತರ, ಆಜ್ಞೆಗಳು ಹಾಗೆ git add . ಮತ್ತು git commit -m "New commit message" ಹೆಚ್ಚು ಸೂಕ್ತವಾದ ಬದ್ಧತೆಯ ಸಂದೇಶದೊಂದಿಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಮರು-ಹಂತ ಮತ್ತು ಒಪ್ಪಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಕ್ರಮಗಳ ಸರಣಿಯು ತಾತ್ಕಾಲಿಕ ಬದ್ಧತೆಯು ಮಾಡಿದ ಕೆಲಸದ ಸಮಗ್ರತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳುವಾಗ ಶಾಖೆಯ ಇತಿಹಾಸದಲ್ಲಿ ಹಸ್ತಕ್ಷೇಪ ಮಾಡುವುದಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, git push ರಿಮೋಟ್ ರೆಪೊಸಿಟರಿಯನ್ನು ಹೊಸ ಕಮಿಟ್ನೊಂದಿಗೆ ನವೀಕರಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ, ಬಲವನ್ನು ತಳ್ಳಿದರೆ ತಾತ್ಕಾಲಿಕವನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ git push -f ಯೋಜನೆಯ ಸಹಯೋಗದ ಮಾನದಂಡಗಳ ಆಧಾರದ ಮೇಲೆ ಅಗತ್ಯವೆಂದು ಪರಿಗಣಿಸಲಾಗಿದೆ.
ಡೇಟಾವನ್ನು ಕಳೆದುಕೊಳ್ಳದೆ ತಾತ್ಕಾಲಿಕ Git ಕಮಿಟ್ಗಳನ್ನು ಹಿಂತಿರುಗಿಸುವುದು
Git ಕಮಾಂಡ್ ಲೈನ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಬಳಸುವುದು
git checkout development-branch
git reset --soft HEAD^
# Now the changes are staged but the last commit is undone.
git status
# Shows staged changes. You can now modify if necessary, or commit again.
git add .
git commit -m "New commit after undoing temporary commit"
git log
# Confirm the new commit history.
git push origin development-branch
ಕೋಡ್ ಬದಲಾವಣೆಗಳನ್ನು ಸಂರಕ್ಷಿಸಲು Git ನಲ್ಲಿ ತಾತ್ಕಾಲಿಕ ಕಮಿಟ್ಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು
ಹೊಂದಿಕೊಳ್ಳುವ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ Git ಆಜ್ಞೆಗಳನ್ನು ಅನ್ವಯಿಸಲಾಗುತ್ತಿದೆ
git checkout development-branch
git reset HEAD~1
# This command undoes the last commit and leaves the changes in your working directory.
git status
# You can see the changes are not staged for commit.
git add .
git commit -m "Recommitting the preserved changes"
git log
# Check to make sure the history is as expected.
git push origin development-branch -f
ತಾತ್ಕಾಲಿಕ ಬದಲಾವಣೆಗಳಿಗಾಗಿ ಸುಧಾರಿತ Git ತಂತ್ರಗಳು
ತಾತ್ಕಾಲಿಕ ಬದಲಾವಣೆಗಳನ್ನು ಸಮರ್ಥವಾಗಿ ನಿಭಾಯಿಸಲು Git ನ ಸಾಮರ್ಥ್ಯವನ್ನು ವಿಸ್ತರಿಸುವುದು, 'ಸ್ಟಾಶಿಂಗ್' ಪರಿಕಲ್ಪನೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮುಖ್ಯವಾಗಿದೆ. Git stash ಒಂದು ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದ್ದು, ಬದ್ಧತೆಯಿಲ್ಲದ ಬದಲಾವಣೆಗಳನ್ನು ಆವೃತ್ತಿ ಇತಿಹಾಸದಲ್ಲಿ ಬದ್ಧಗೊಳಿಸುವ ಅಗತ್ಯವಿಲ್ಲದೇ ತಾತ್ಕಾಲಿಕವಾಗಿ ಉಳಿಸುತ್ತದೆ. ಡೆವಲಪರ್ಗಳು ಅರ್ಧ-ಮುಗಿದ ಕೆಲಸವನ್ನು ಮಾಡದೆ ಶಾಖೆಗಳ ನಡುವೆ ತ್ವರಿತವಾಗಿ ಸಂದರ್ಭಗಳನ್ನು ಬದಲಾಯಿಸಬೇಕಾದಾಗ ಈ ವೈಶಿಷ್ಟ್ಯವು ಉಪಯುಕ್ತವಾಗಿದೆ. ಸ್ಟಾಶಿಂಗ್ ಹಂತ ಮತ್ತು ಅಸ್ಥಿರ ಬದಲಾವಣೆಗಳನ್ನು ಸಂರಕ್ಷಿಸುತ್ತದೆ ಮತ್ತು ನಂತರ ಮರುಸ್ಥಾಪಿಸಬಹುದು, ಇದು ಅಭಿವೃದ್ಧಿಯ ಸಮಯದಲ್ಲಿ ಗಮನದಲ್ಲಿ ಅನಿರೀಕ್ಷಿತ ಬದಲಾವಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸೂಕ್ತವಾಗಿದೆ.
ಮತ್ತೊಂದು ನಿರ್ಣಾಯಕ ಅಂಶವೆಂದರೆ ಬಲದಿಂದ ತಳ್ಳುವಿಕೆಯ ಪರಿಣಾಮಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು git push -f. ಈ ಆಜ್ಞೆಯು ರಿಮೋಟ್ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಇತಿಹಾಸವನ್ನು ತಿದ್ದಿ ಬರೆಯಬಹುದು, ದೋಷದಲ್ಲಿ ಅಥವಾ ತಾತ್ಕಾಲಿಕವಾಗಿ ಮಾಡಿದ ಕಮಿಟ್ಗಳನ್ನು ಸರಿಪಡಿಸಲು ಇದು ಉಪಯುಕ್ತವಾಗಿದೆ. ಆದಾಗ್ಯೂ, ಇದನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಬಳಸಬೇಕು ಏಕೆಂದರೆ ಅದು ಸರಿಯಾಗಿ ಸಂವಹನ ಮಾಡದಿದ್ದಲ್ಲಿ ಇತರ ತಂಡದ ಸದಸ್ಯರಿಗೆ ಕಳೆದುಹೋದ ಬದ್ಧತೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು. ಈ ಸುಧಾರಿತ ತಂತ್ರಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಡೆವಲಪರ್ಗಳಿಗೆ ಸಹಕಾರಿ ಪರಿಸರದಲ್ಲಿ ಸ್ವಚ್ಛ ಮತ್ತು ಪರಿಣಾಮಕಾರಿ ಯೋಜನಾ ಇತಿಹಾಸವನ್ನು ನಿರ್ವಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
Git ತಾತ್ಕಾಲಿಕ ಬದಲಾವಣೆಗಳ FAQ
- ಇದರ ಉದ್ದೇಶವೇನು git reset --soft HEAD^?
- ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಶಾಖೆಯಲ್ಲಿನ ಕೊನೆಯ ಕಮಿಟ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಲು ಈ ಆಜ್ಞೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಆದರೆ ಇದು ಬದಲಾವಣೆಗಳನ್ನು ಹಂತ ಹಂತವಾಗಿ ಇರಿಸುತ್ತದೆ.
- ನಾನು ತಕ್ಷಣ ಮಾಡಲು ಬಯಸದ ಬದಲಾವಣೆಗಳನ್ನು ಹೇಗೆ ಉಳಿಸುವುದು?
- ನೀವು ಬಳಸಬಹುದು git stash ನಿಮ್ಮ ಬದ್ಧತೆಯಿಲ್ಲದ ಬದಲಾವಣೆಗಳನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ಸಂಗ್ರಹಿಸಲು.
- ಸ್ಟ್ಯಾಶ್ ಮಾಡಿದ ಬದಲಾವಣೆಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವೇ?
- ಹೌದು, ಬಳಸುವ ಮೂಲಕ git stash pop ನೀವು ಹಿಂದೆ ಸಂಗ್ರಹಿಸಿದ ಬದಲಾವಣೆಗಳನ್ನು ಪುನಃ ಅನ್ವಯಿಸಬಹುದು ಮತ್ತು ಅವುಗಳನ್ನು ಸ್ಟ್ಯಾಶ್ ಪಟ್ಟಿಯಿಂದ ತೆಗೆದುಹಾಕಬಹುದು.
- ಬಳಕೆಯ ಅಪಾಯ ಏನು git push -f?
- ಬಲವಂತವಾಗಿ ತಳ್ಳುವಿಕೆಯು ರಿಮೋಟ್ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಬದಲಾವಣೆಗಳನ್ನು ತಿದ್ದಿ ಬರೆಯಬಹುದು, ಎಚ್ಚರಿಕೆಯಿಂದ ಬಳಸದಿದ್ದರೆ ಇತರರಿಗೆ ಕಳೆದುಹೋದ ಕೆಲಸವನ್ನು ಉಂಟುಮಾಡಬಹುದು.
- ನಾನು ಜಿಟ್ ಸ್ಟಾಶ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಬಹುದೇ?
- ಸ್ಟ್ಯಾಶ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸುವುದನ್ನು ಬದಲಾವಣೆಗಳನ್ನು ಮರು-ಸ್ಟೇಶ್ ಮಾಡುವ ಮೂಲಕ ಅಥವಾ ಸ್ಟ್ಯಾಶ್ ಅನ್ನು ಅನ್ವಯಿಸದೆ ನಿರ್ವಹಿಸಬಹುದು.
Git ನಲ್ಲಿ ತಾತ್ಕಾಲಿಕ ಕಮಿಟ್ಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಅಂತಿಮ ಆಲೋಚನೆಗಳು
Git ನಲ್ಲಿ ತಾತ್ಕಾಲಿಕ ಬದ್ಧತೆಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸುವುದು ಡೆವಲಪರ್ಗಳಿಗೆ ಕ್ಲೀನ್ ಪ್ರಾಜೆಕ್ಟ್ ಇತಿಹಾಸವನ್ನು ನಿರ್ವಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ ಮತ್ತು ಆದ್ಯತೆಗಳು ಬದಲಾದಾಗಲೂ ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಜಿಟ್ ರೀಸೆಟ್, ಜಿಟ್ ಸ್ಟ್ಯಾಶ್ ಮತ್ತು ಜಿಟ್ ಪುಶ್ನಂತಹ ಕಮಾಂಡ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸುವ ಮೂಲಕ, ಡೆವಲಪರ್ಗಳು ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳದೆ ವಿವಿಧ ಅಭಿವೃದ್ಧಿ ಸನ್ನಿವೇಶಗಳ ಮೂಲಕ ನಿರ್ವಹಿಸಬಹುದು. ಯಾವುದೇ ಡೆವಲಪರ್ ತಮ್ಮ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ಅಭ್ಯಾಸಗಳನ್ನು ಹೆಚ್ಚಿಸಲು ಮತ್ತು ಅವರ ಯೋಜನೆಯು ಬದಲಾಗುತ್ತಿರುವ ಅಭಿವೃದ್ಧಿ ಅಗತ್ಯಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಈ ಉಪಕರಣಗಳು ಅತ್ಯಗತ್ಯ.