Fixed a bug in Git
Being human, everyone makes mistakes. So each VCS provides a feature to fix errors at some point. Git provides a feature that we can use to undo the modifications made on the local repository.
Being human, everyone makes mistakes. So each VCS provides a feature to fix errors at some point. Git provides a feature that we can use to undo the modifications made on the local repository.
Suppose the user accidentally made a few changes to the local repository and then wanted to undo these changes. In such cases, revert operation plays an important role.
Return uncommitted changes
Suppose Jerry accidentally edits a file from his local repository. But he wants to undo this custom. To resolve this situation, we use the git checkout command. We can use this command to return the contents of a file.
[jerry @ CentOS src] $ pwd
/ home / jerry / jerry_repo / project / src
[jerry @ CentOS src] $ git status -s
M string_operations.c
[jerry @ CentOS src] $ git checkout string_operations.c
[jerry @ CentOS src] $ git status –s
Further, we can use the git checkout command to obtain deleted files from the local repository. Suppose Tom deletes a file from the local repository and he wants to use this file later. We can do this by using the same command.
[tom @ CentOS src] $ pwd
/ home / tom / top_repo / project / src
[tom @ CentOS src] $ ls -1
Makefile
string_operations.c
[tom @ CentOS src] $ rm string_operations.c
[tom @ CentOS src] $ ls -1
Makefile
[tom @ CentOS src] $ git status -s
D string_operations.c
Git is indicating the D before the file name. This indicates that the file has been deleted from the local repository.
[tom @ CentOS src] $ git checkout string_operations.c
[tom @ CentOS src] $ ls -1
Makefile
string_operations.c
[tom @ CentOS src] $ git status -s
Note : We can perform all these operations before commit operation.
Remove changes from the organization area
We saw when we performed an extra operation, the files moved from the local repository to the organization area. If a user accidentally edits a file and adds it to the organizer area, he can return the changes, using the git checkout command.
In Git, there is a HEAD pointer that always points to the latest commit. If you want to undo a change from the organizer area, then you can use the git checkout command, but with this command, you must provide an additional parameter, ie, the HEAD pointer. This additional commit pointer parameter instructs the git checkout command to reset the working tree and also to remove organized changes.
Suppose Tom modifies a file from the local repository. If we look at the status of this file, it will indicate that the file is edited but not added in the organization area.
tom @ CentOS src] $ pwd
/ home / tom / top_repo / project / src
# Unmodified file
[tom @ CentOS src] $ git status -s
# Modify file and view it's status.
[tom @ CentOS src] $ git status -s
M string_operations.c
[tom @ CentOS src] $ git add string_operations.c
Git status indicates that the file is present in the organizer area, now returns it using the git command command and observes the status of the returned file.
[tom @ CentOS src] $ git checkout HEAD - string_operations.c
[tom @ CentOS src] $ git status -s
Move the HEAD HEAD with git reset
After making some changes, you can decide to unload these changes. Git reset command is used to reset or return changes. We can perform three different types of reset operations.
The diagram below shows the process of git reset command.
Soft
Each branch has a HEAD pointer, which points to the latest commit. If we use the git reset command with the --soft option followed by a commit ID, then it will only reset the HEAD pointer without destroying anything.
.Git / refs / heads / master files keep the commit ID of the HEAD pointer. We can verify it using the git log-1 command.
[jerry @ CentOS project] $ cat .git / refs / heads / master
577647211ed44fe2ae479427a0668a4f12ed71a1
Now, look at the latest commit IDs, which will connect to the commit ID above.
[jerry @ CentOS project] $ git log -2
The above command will produce the following result:
commit 577647211ed44fe2ae479427a0668a4f12ed71a1
Author: Tom Cat
Date: Wed Sep 11 10:21:20 2013 +0530
Removed binary executable
commit 29af9d45947dc044e33d69b9141d8d2dad37cc62
Author: Jerry Mouse
Date: Wed Sep 11 10:16:25 2013 +0530
Added compiled binary
Let us reset the HEAD pointer.
[jerry @ CentOS project] $ git reset --soft HEAD ~
Now we have just reset the HEAD pointer again after a location. We check the contents of the .git / refs / heads / master file.
[jerry @ CentOS project] $ cat .git / refs / heads / master
29af9d45947dc044e33d69b9141d8d2dad37cc62
The commit ID from the file is changed, now verify it by checking the commit message.
jerry @ CentOS project] $ git log -2
The above command will produce the following result:
commit 29af9d45947dc044e33d69b9141d8d2dad37cc62
Author: Jerry Mouse
Date: Wed Sep 11 10:16:25 2013 +0530
Added compiled binary
commit 94f7b26005f856f1a1b733ad438e97a0cd509c1a
Author: Jerry Mouse
Date: Wed Sep 11 10:08:01 2013 +0530
Added Makefile and renamed strings.c to string_operations.c
Optional mixed
The git reset command with the --mixed option returns changes from the organization area that have not yet been committed. It only returns changes from the organization area. The actual changes to a working copy of a file are not affected. The default git reset command is equivalent to git reset --mixed.
Hard option
If you use the --hard option with the git reset command, it will clear the organization area; it will reset the HEAD pointer to the latest commits of a specific commit ID and delete the local file changes.
We check the commit ID.
[jerry @ CentOS src] $ pwd
/ home / jerry / jerry_repo / project / src
[jerry @ CentOS src] $ git log -1
The above command will produce the following result:
commit 577647211ed44fe2ae479427a0668a4f12ed71a1
Author: Tom Cat
Date: Wed Sep 11 10:21:20 2013 +0530
Removed binary executable
Jerry edits a file by adding a single line comment at the beginning of the file.
[jerry @ CentOS src] $ head -2 string_operations.c
/ * Dòng này được gỡ bỏ bởi git reset operation * /
#include
He verifies it using the git status command.
[jerry @ CentOS src] $ git status -s
M string_operations.c
Jerry adds this edited file to the organizer area and verifies it with the git status command.
[jerry @ CentOS src] $ git add string_operations.c
[jerry @ CentOS src] $ git status
The above command will produce the following result:
# On the master branch
# Changes to be committed:
# (use "git reset HEAD ." to unstage)
#
#
modified: string_operations.c
#
Git status is indicating that the file is present in the organizer area. Now, reset HEAD with the --hard option.
[jerry @ CentOS src] $ git reset --hard 577647211ed44fe2ae479427a0668a4f12ed71a1
HEAD is now at 5776472 Removed executable binary
The git reset command executes successfully, which will return the file from the organizer area as well as remove any local changes made to the file.
[jerry @ CentOS src] $ git status -s
Git status is indicating that the file has been removed from the organization area.
[jerry @ CentOS src] $ head -2 string_operations.c
#include
The head command also indicates that the reset operation has removed the local changes.
According to Tutorialspoint
Previous post: Delete operation in Git
Next lesson: Tag operation in Git
You should read it
- How to use Head Pointer on a Mac
- Returns the pointer from the function in C ++
- Instructions on how to reset Windows 10 extremely fast and simple
- Steps to reset Apple TV, How to factory reset Apple TV
- What is mixed content? And why does Chrome block it?
- What is Mixed Reality (MR)? How is MR used?
- How to create a yellow circle around the mouse cursor on Windows
- Steps to reset the computer on Windows 11 to fix annoying errors
- How to find and delete broken bookmarks in Firefox
- Cursor this in C ++
- How to Factory Reset Windows 10 PC with Command Prompt
- 10 best information organization software
Maybe you are interested
Words Jump to Lines in Excel - Tell You How to Fix Top Useful Software That Will Make Your Business Grow Faster And Work Better Popular genuine Canon inks How to block spam messages, advertising messages, and Facebook scams The easiest way to write special characters Free Fire Advantages and disadvantages of popular eBook formats: EPUB, MOBI, AZW, IBA, ...