mirror of
https://github.com/git-learning-game/oh-my-git.git
synced 2024-12-22 20:32:38 +01:00
42 lines
940 B
Text
42 lines
940 B
Text
|
[description]
|
||
|
|
||
|
You can point refs to a new location using the same command you use to create them:
|
||
|
|
||
|
git update-ref refs/<refname> <object>
|
||
|
|
||
|
As an exercise, make all refs in this repository point to the tree object!
|
||
|
|
||
|
[setup]
|
||
|
|
||
|
echo hello > hello
|
||
|
echo world > world
|
||
|
BLOB1=$(git hash-object -w hello)
|
||
|
BLOB2=$(git hash-object -w world)
|
||
|
git add .
|
||
|
TREE=$(git write-tree)
|
||
|
COMMIT=$(git commit-tree $TREE -m "Initial commit")
|
||
|
|
||
|
git update-ref refs/a "$BLOB1"
|
||
|
git update-ref refs/b "$COMMIT"
|
||
|
|
||
|
[setup goal]
|
||
|
|
||
|
echo hello > hello
|
||
|
echo world > world
|
||
|
BLOB1=$(git hash-object -w hello)
|
||
|
BLOB2=$(git hash-object -w world)
|
||
|
git add .
|
||
|
TREE=$(git write-tree)
|
||
|
COMMIT=$(git commit-tree $TREE -m "Initial commit")
|
||
|
|
||
|
git update-ref refs/a "$BLOB1"
|
||
|
git update-ref refs/b "$COMMIT"
|
||
|
|
||
|
for REF in $(git for-each-ref --format='%(refname)'); do
|
||
|
git update-ref "$REF" "$TREE"
|
||
|
done
|
||
|
|
||
|
[win]
|
||
|
|
||
|
test "$(git show-ref -s | sort -u)" = "c7863f72467ed8dd44f4b8ffdb8b57ca7d91dc9e"
|