3.9 KiB
Git Assignment
1. What is Git and Version Control
What problem does Git solve? Git solves the problem of tracking changes in files (especially code) and managing collaboration between multiple people. Without Git, it’s difficult to know who made what changes, when, and why. Git lets you save different versions of your project, go back to earlier versions if something breaks, and merge changes from different people without overwriting each other’s work.
Real-life example where multiple people edit the same file: A school group project where everyone is writing different sections of a report in the same Word/Google Doc file. Each student edits parts of the document, and the changes need to be combined into one final version.
Why is version control better than emailing files back and forth? With email, you end up with many copies of the same file (e.g., report_final.docx, report_final2.docx, report_really_final.docx), which is confusing.It’s easy to lose track of who made which changes.If two people edit the same section, you must manually merge them, which can cause mistakes.
Version control (like Git) keeps one central version of the file, records who made each change, and can automatically merge changes. This makes collaboration smoother, avoids confusion, and provides a history to undo mistakes if needed.
Git Version Check
2. Installing Git & Configuring User Info
Git List
3. Initializing a Repository
Git Init
4. Working Directory, Staging, and Commits
Git Add
5. Adding & Committing Files
Git Log
6. Viewing Commit Logs & Diffs
Git Log (graph)
Git Diff
Git Diff (commit1 vs commit2)
7. Creating & Switching Branches
Git Branch
8. Cloning a Remote Repository
Git Clone
9. Adding & Managing Remotes
Git Remote
10. Pushing & Pulling Changes
Git Pull
Git Push
11. Ignoring Files with .gitignore
.gitignore
Before git ignore
After git ignore
Part 1: Viewing File History
git log -- filename.extension
git log -p -- filename.extension
git log --oneline -- filename.extension
How many commits modified this file? 5
What differences do you see when adding the -p option? It shows the detailed changes made to the file during the commit
Part 2: Viewing File History with Blame
git blame -- filename.extension
git blame -L 1,5 -- filename.extension
git blame -e -- filename.extension
Who changed each line of the file? Gokul
How does -L help when the file is large? It acts as a selection area to select the lines between the given numbers
What extra information does -e provide? It shows the commiters email id