mirror of
https://github.com/coreutils/coreutils.git
synced 2024-11-24 18:33:47 +08:00
* HACKING: describe how to find a misplaced change-set
This commit is contained in:
parent
773be9eca8
commit
186b45aaed
16
HACKING
16
HACKING
@ -360,6 +360,22 @@ Miscellaneous useful git commands
|
|||||||
you an interface with which you can reorder and modify arbitrary
|
you an interface with which you can reorder and modify arbitrary
|
||||||
change sets on that branch.
|
change sets on that branch.
|
||||||
|
|
||||||
|
* if you "misplace" a change set, i.e., via git reset --hard ..., so that
|
||||||
|
it's no longer reachable by any branch, you can use "git fsck" to find
|
||||||
|
its SHA1 and then tag it or cherry-pick it onto an existing branch.
|
||||||
|
For example, run this:
|
||||||
|
git fsck --lost-found HEAD && cd .git/lost-found/commit \
|
||||||
|
&& for i in *; do git show $i|grep SOME_IDENTIFYING_STRING \
|
||||||
|
&& echo $i; done
|
||||||
|
The "git fsck ..." command creates the .git/lost-found/... hierarchy
|
||||||
|
listing all unreachable objects. Then the for loop
|
||||||
|
print SHA1s for commits that match via log or patch.
|
||||||
|
For example, say that found 556fbb57216b119155cdda824c98dc579b8121c8,
|
||||||
|
you could run "git show 556fbb57216b119" to examine the change set,
|
||||||
|
or "git checkout -b found 556fbb5721" to give it a branch name.
|
||||||
|
Finally, you might run "git checkout master && git cherry-pick 556fbb5721"
|
||||||
|
to put that change on the tip of "master".
|
||||||
|
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
|
||||||
Finding things to do
|
Finding things to do
|
||||||
|
Loading…
Reference in New Issue
Block a user