I cloned a repository and want to switch to a commit to test my plugin against the core.
Asked
Active
Viewed 1.4e+01k times
2 Answers
157
Instead of passing the name of a branch, you can pass any commit ID to checkout
:
git checkout <commit-id>

Felix Kling
- 795,719
- 175
- 1,089
- 1,143
-
Ah did it :) I thought that checkout only allows branch names. – xZise Mar 07 '11 at 20:38
-
3When you check out a non-branch object (a commit by its ID or a tag), you get a detached head. http://stackoverflow.com/questions/3965676 – Rudi Mar 08 '11 at 07:50
-
11When you want to go back to the latest commit just use "git checkout nameOfYourBranch" – TroodoN-Mike Jan 07 '13 at 11:00
-
Does commit ID means commit Hash here? – Mario Mar 02 '14 at 01:51
-
@Mario: Yes. The man page changed in the meantime and just mentions "commit" now. – Felix Kling Mar 02 '14 at 01:58
20
Step 1: fetch list of commits:
git log
You'll get list like in this example:
[Comp:Folder User$ git log
commit 54b11d42e12dc6e9f070a8b5095a4492216d5320
Author: author <author@gmail.com>
Date: Fri Jul 8 23:42:22 2016 +0300
This is last commit message
commit fd6cb176297acca4dbc69d15d6b7f78a2463482f
Author: author <author@gmail.com>
Date: Fri Jun 24 20:20:24 2016 +0300
This is previous commit message
commit ab0de062136da650ffc27cfb57febac8efb84b8d
Author: author <author@gmail.com>
Date: Thu Jun 23 00:41:55 2016 +0300
This is previous previous commit message
...
Step 2: copy needed commit hash and paste it for checkout:
git checkout fd6cb176297acca4dbc69d15d6b7f78a2463482f
Thats all.

Igor
- 12,165
- 4
- 57
- 73
-
2With git log --pretty="%h - %s" the user can get a shortened hash (and the commit message) that also works on git checkout. – HRSE Feb 24 '19 at 12:19
-
Doesn't work, result: fatal: your current branch 'master' does not have any commits yet – SPlatten Sep 07 '20 at 12:43
-