Si vous venez de faire git init
dans un nouveau référentiel (par opposition à la re init
-d'un référentiel existant), et n'ont pas encore exécuté git commit
vous êtes actuellement sur un branche à naître (normalement master
-comme-unborn-branch). Cela signifie que HEAD
contient le nom master
tandis que la branche nommée master
n'existe pas réellement.
Si vous n'avez pas non plus exécuté git add
commandes, votre index est actuellement vide .
L'état que vous souhaitez comme à avoir est d'avoir le nom master
pointent vers le même commit que foo/master
sans modifier le contenu de l'arbre de travail. Mais d'abord, vous devez obtenir tous les commits de l'arbre de travail distant. foo
:
$ git fetch foo
Maintenant, vous pouvez créer la branche elle-même :
$ git branch master foo/master
Puisque vous êtes déjà sur master
-Il était simplement "à naître". Vous êtes maintenant toujours en vie. master
y master
pointe vers le même commit que foo/master
.
Votre index est toujours vide, donc git status
vous montrera que vous avez supprimé tous les fichiers du HEAD
commit, avec chaque fichier dans l'arbre de travail comme un fichier non suivi. Si vous souhaitez remplir votre index à partir du commit actuel, vous pouvez maintenant le faire :
$ git read-tree HEAD
et ensuite git reset
divers fichiers pour les restaurer. Sinon, si vous voulez simplement utiliser l'arbre de travail, vous pouvez simplement git add .
(bien que vous puissiez vouloir mettre en place un .gitignore
d'abord).