AIML-GIT Lab Manual - 2024-25
AIML-GIT Lab Manual - 2024-25
AIML-GIT Lab Manual - 2024-25
Compiled by
Name:
USN:
RN SHETTY TRUST®
Trademark
Edition: 2023- 24
Document Owner
The primary contact for questions regarding this document is:
1 . Dr Narendrakmar
Author(s):
2. Dr Mallikarjun
3. Prof. Shruthi U
4. Prof. Rashmi B C
5. Prof. Soumya Tarapur
6. Prof. Vinutha D
Department: CSE (AI&ML)
Contact email ids : [email protected]
[email protected]
[email protected]
COURSE
PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3 PSO4
OUTCOMES
CO1 3 3 3 3 3 2 2 2 2
CO2 3 3 3 3 3 2 2 2 2
CO3 3 3 3 3 3 2 2 2 2
CO4 3 3 3 3 3 2 2 2 2
1. GIT BASICS
Introduction to GIT:
Git is a distributed version control system (VCS) that is widely used for tracking
changes in source code during software development. It was created by Linus
Torvalds in 2005 and has since become the de facto standard for version control
in the software development industry.
where your project's files and version history are stored. There can be a
local repository on your computer and remote repositories on servers.
2. Commits: In Git, a commit is a snapshot of your project at a particular
on your local machine. This allows you to work on the project and make
changes locally.
8. Forking: Forking is a way to create your copy of a repository, typically
on a hosting platform like GitHub. You can make changes to your fork
without affecting the original project and later create pull requests to
contribute your changes back to the original repository.
Git is known for its efficiency, flexibility, and ability to handle both small and
large-scale software projects. It is used not only for software development but
also for managing and tracking changes in various types of text-based files,
including documentation and configuration files. Learning Git is essential for
modern software development and collaboration.
Features of GIT:
1. Version Control: Git allows you to track changes in your project's files
meaning that every developer has a complete copy of the project's history
on their local machine. This provides redundancy, facilitates offline work,
and reduces the reliance on a central server.
provide tools for code review and collaboration. Developers can propose
changes, comment on code, and discuss improvements, making it easier
to maintain code quality.
7. Open Source and Community Development: Git has become the
changes made to files, rather than entire file copies, which results in small
repository sizes and faster operations.
9. History and Documentation: Git's commit history and commit
is the most well-known and widely used DVCS, but other DVCS options
include Mercurial and Bazaar.
including who made the change, what was changed, and when it was
changed. This makes it easy to review and understand the evolution of a
project.
2. Collaboration: VCS allows multiple developers to work on the same
documentation, explaining why a change was made, who made it, and
when it was made.
7. Efficiency: VCS systems are designed to be fast and efficient. They
typically store only the changes made to files, rather than entire file
copies, which results in small repository sizes and faster operations.
VCS is a fundamental tool in software development and is used not only for
source code but also for tracking changes in documentation, configuration files,
and other types of text-based files. It is especially crucial for collaborative
projects, allowing teams of developers to work together on the same codebase
with confidence.
The Git lifecycle refers to the typical sequence of actions and steps you take
when using Git to manage your source code and collaborate with others. Here's
an overview of the Git lifecycle:
1. Initializing a Repository:
o To start using Git, you typically initialize a new repository (or
repo) in your project directory. This is done with the command git
init.
2. Working Directory:
o Your project files exist in the working directory. These are the files
you are actively working on.
3. Staging:
o Before you commit changes, you need to stage them. Staging
allows you to select which changes you want to include in the next
commit. You use the git add command to stage changes selectively
or all at once with git add ..
4. Committing:
o After you've staged your changes, you commit them with a
message explaining what you've done. Commits create snapshots
of your project at that point in time. You use the git commit
command to make commits, like git commit -m "Add new feature".
5. Local Repository:
o Commits are stored in your local repository. Your project's version
history is preserved there.
6. Branching:
12. Collaboration:
o Developers can collaborate by pushing, pulling, and making pull
requests in a shared remote repository. Collaboration tools like pull
requests are commonly used on platforms like GitHub and GitLab.
13. Tagging and Releases:
o You can create tags to mark specific points in the project's history,
such as version releases. Tags are useful for identifying significant
milestones.
14. Continuous Cycle:
o The Git lifecycle continues as you repeat these steps over time to
manage the ongoing development and evolution of your project.
This cycle supports collaborative and agile software development.
The Git lifecycle allows for effective version control, collaboration, and the
management of complex software projects. It provides a structured approach to
tracking and sharing changes, enabling multiple developers to work together on
a project with minimal conflicts and a clear history of changes.
2. GIT INSTALLATION
To install Git on any computer, follow the steps for specific operating system:
• If you prefer a graphical user interface (GUI) for Git, you can also install
GitHub Desktop, which includes Git. Download it from
https://desktop.github.com/ and follow the installation instructions.
• If you prefer to compile Git from source, you can download the source
code from the official Git website (https://git-scm.com/downloads) and
follow the compilation instructions provided there. This is usually only
necessary for advanced users.
After installation, you can open a terminal or command prompt and verify that
Git is correctly installed by running the following command:
$ git --version
If Git is installed successfully, you will see the Git version displayed in the
terminal. You can now start using Git for version control and collaborate on
software development projects.
Configuring Git involves setting up your identity (your name and email),
customizing Git options, and configuring your remote repositories. Git has three
levels of configuration: system, global, and repository-specific. Here's how you
can configure Git at each level:
1. System Configuration:
To set system-level configuration, you can use the git config command with the
--system flag (usually requires administrator privileges). For example:
2. Global Configuration:
• Global configuration is specific to your user account and applies to all Git
repositories on your computer. This is where you usually set your name
and email.
To set global configuration, you can use the git config command with the --
global flag. For example:
$ git config --global user.name "Your Name"
Git is a popular version control system used for tracking changes in software
development projects. Here is a list of common Git commands along with brief
explanations:
15. git fetch: Retrieves changes from a remote repository without merging
them.
16. git reset <file>: Unstages a file that was previously staged for commit.
17. git reset --hard <commit>: Resets the branch to a specific commit,
19. git tag: Lists and manages tags (usually used for marking specific
Git repository.
22. git mv <oldfile><newfile>: Renames a file and stages the change.
These are some of the most common Git commands, but Git offers a wide range
of features and options for more advanced usage. You can use git --help
followed by the command name to get more information about any specific
command, e.g., git help commit.
Experiment 1.
To initialize a new Git repository in a directory, create a new file, add it to the
staging area, and commit the changes with an appropriate commit message,
follow these steps:
1. Open your terminal and navigate to the directory where you want to
$ git init
3. Create a new file in the directory. For example, let's create a file named
"my_file.txt." You can use any text editor or command-line tools to create
the file.
4. Add the newly created file to the staging area. Replace "my_file.txt" with
Your commit message should briefly describe the purpose or nature of the
After these steps, your changes will be committed to the Git repository with the
provided commit message. You now have a version of the repository with the
new file and its history stored in Git.
Experiment 2.
Solution:
This command will create a new branch called "feature-branch" and switch to it.
$ git add .
$ git commit -m "Your commit message for feature-branch"
This command will incorporate the changes from the "feature-branch" into
the "master" branch.
Now, your changes from the "feature-branch" have been merged into the
"master" branch. Your project's history will reflect the changes made in both
branches
Experiment 3.
Solution:
To stash your changes, switch branches, and then apply the stashed changes in
Git, you can use the following commands:
This command will save your changes in a stash, which acts like a temporary
storage for changes that are not ready to be committed.
Replace "target-branch" with the name of the branch you want to switch to.
This command will apply the most recent stash to your current working branch.
If you have multiple stashes, you can specify a stash by name or reference (e.g.,
git stash apply stash@{2}) if needed.
If you want to remove the stash after applying it, you can use git stash pop
instead of git stash apply.
Remember to replace "Your stash message" and "target-branch" with the actual
message you want for your stash and the name of the branch you want to switch
to.
Experiment 4.
machine. Solution:
To clone a remote Git repository to your local machine, follow these steps:
<repository_url> with the URL of the remote Git repository you want to
clone. For example, if you were cloning a repository from GitHub, the
URL might look like this:
$ git clone <repository URL>
a full example:
4. Git will clone the repository to your local machine. Once the process is
complete, you will have a local copy of the remote repository in your
chosen directory.
You can now work with the cloned repository on your local machine, make
changes, and push those changes back to the remote repository as needed.
Experiment 5.
Fetch the latest changes from a remote repository and rebase your local branch
onto the updated remote branch.
Solution:
To fetch the latest changes from a remote repository and rebase your local
branch onto the updated remote branch in Git, follow these steps:
3. Fetch the latest changes from the remote repository. This will update your
local repository with the changes from the remote without merging them
into your local branch:
Here, origin is the default name for the remote repository. If you have multiple
remotes, replace origin with the name of the specific remote you want to fetch
from.
4. Once you have fetched the latest changes, rebase your local branch onto
Replace <branch-name> with the name of the remote branch you want to rebase
onto. This command will reapply your local commits on top of the latest
changes from the remote branch, effectively incorporating the remote changes
into your branch history.
5. Resolve any conflicts that may arise during the rebase process. Git will
stop and notify you if there are conflicts that need to be resolved. Use a
text editor to edit the conflicting files, save the changes, and then
continue the rebase with:
6. After resolving any conflicts and completing the rebase, you have
successfully updated your local branch with the latest changes from the
remote branch.
7. If you want to push your rebased changes to the remote repository, use
Replace <branch-name> with the name of your local branch.By following these
steps, you can keep your local branch up to date with the latest changes from the
remote repository and maintain a clean and linear history through rebasing.
Experiment 6.
Solution:
Experiment 7.
Write the command to create a lightweight Git tag named "v1.0” for a commit in
your local repository.
Solution:
To create a lightweight Git tag named "v1.0" for a commit in your local
repository, you can use the following command:
This command will create a lightweight tag called "v1.0" for the most recent
commit in your current branch. If you want to tag a specific commit other than
the most recent one, you can specify the commit's SHA-1 hash after the tag
name. For example:
Replace <commit-SHA> with the actual SHA-1 hash of the commit you want to
tag.
Experiment 8.
Solution:
Replace <start-commit> with the commit at the beginning of the range, and
<end-commit> with the commit at the end of the range. The ^ symbol is used to
exclude the <start-commit> itself and include all commits after it up to and
including <end-commit>. This will apply the changes from the specified range
of commits to your current branch.
Make sure you are on the branch where you want to apply these changes before
running the cherry-pick command.
Experiment 9.
Given a commit ID, how would you use Git to view the details of that specific
commit, including the author, date, and commit message?
Solution:
To view the details of a specific commit, including the author, date, and
commit message, you can use the git show or git log command with the commit
ID. Here are both options:
Replace <commit-ID> with the actual commit ID you want to view. This
command will display detailed information about the specified commit,
including the commit message, author, date, and the changes introduced by that
commit.
For example:
$ git show abc123
2. Using git log:
The -n 1 option tells Git to show only one commit. Replace <commit-ID> with
the actual commit ID. This command will display a condensed view of the
specified commit, including its commit message, author, date, and commit ID.
For example:
$ git log -n 1 abc123
Both of these commands will provide you with the necessary information about
the specific commit you're interested in.
Experiment 10.
Write the command to list all commits made by the author "JohnDoe" between
"2023- 01-01"and "2023-12-31."
Solution:
To list all commits made by the author "JohnDoe" between "2023-01-01" and
"2023-12-31" in Git, you can use the git log command with the --author and --since
and --until options. Here's the command:
This command will display a list of commits made by the author "JohnDoe" that
fall within the specified date range, from January 1, 2023, to December 31, 2023.
Make sure to adjust the author’s name and date range as needed for your specific
use case.
Experiment 11.
Write the command to display the last five commits in the repository's history.
Solution:
To display the last five commits in a Git repository's history, you can use the git
log command with the -n option, which limits the number of displayed commits.
Here's the command:
$ git log -n 5
This command will show the last five commits in the repository's history. You can
adjust the number after -n to display a different number of commits if needed.
Experiment 12.
Write the command to undo the changes introduced by the commit with the ID
"abc123".
Solution:
To undo the changes introduced by a specific commit with the ID "abc123" in Git,
you can use the git revert command. The git revert command creates a new commit
that undoes the changes made by the specified commit, effectively "reverting" the
commit. Here's the command: