9

I just started using Git on Windows and I have a small question. When I say git commit along with a message I realize that git commits the file. But where exactly does it store the commited file?

Let's say I make some changes and want to revert back to my third commit using Git GUI. How exactly do I do that?

| improve this question | | | | |
  • The point of Git is that you don't need to know how Git is storing the backups and history. Git handles all of that for you – Kolob Canyon Oct 4 '18 at 15:05
  • Also, this question should be migrated to Stackoverflow – Kolob Canyon Jan 15 '19 at 21:58
8

Git commit only saves it to the stage, which is locally on your computer. Use Push to update it to a remote server (Like github).

Use git revert <ID> to revert back to a previous commit. each commit has an identifying code.

See here for more details on revert

| improve this answer | | | | |
  • 2
    wrong answer. this only reverts this specific commit. – Jeff P Chacko Mar 4 at 13:37
27

The above answer is not quite correct - git revert <ID> does not set your repository to that commit -- git revert <ID> creates a new commit that undoes the changes introduced by commit <ID>. It's more or less a way to 'undo' a commit and save that undo in your history as a new commit.

If you want to set your branch to the state of a particular commit (as implied by the OP), you can use git reset <commit>, or git reset --hard <commit> The first option only updates the INDEX, leaving files in your working directory unchanged as if you had made the edits but not yet committed them. With the --hard option, it replaces the contents of your working directory with what was on <commit>.

A note of warning that git reset will alter history -- if I made several commits and then reset to the first commit, the subsequent commits will no longer be in the commit history. This can cause some serious headaches if any of those lost commits have been pushed to a public repository. Make sure you only use it to get rid of commits that haven't been pushed to another repository!

| improve this answer | | | | |
  • after I reset how do I commit Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded. – Omar Jan 24 '18 at 16:58
  • since we change our code to older commit, in order to push it we should force push it with this command git push -f origin <branch_name>. Otherwise git will always prompt you to take the pull first and then push. – Gaurav Rajdeo Oct 24 '18 at 10:03
  • git push -f is NEVER a good thing to do ! – MikeW Jun 27 '19 at 13:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.