Что произойдет, если я удалю HEAD
и FETCH_HEAD
под каталогом .git?Что произойдет, если я удалю HEAD и FETCH_HEAD под .git
Я удалил эти файлы и внес некоторые изменения в README.txt
попытался вытащить и нажать (без создания каких-либо ветвей). Он работал нормально.
Будет ли это создавать проблемы, если я буду делать более серьезные вещи? как перезагрузка и сброс?
Как Git сохраняет треки, на которых работает текущая ветка, над которой я работаю? Я думал, что HEAD
и FETCH_HEAD
должны обозначать эти вещи. Каковы все файлы и каталоги под .git
, которые я могу удалить, и все еще git продолжит работу?
Другими словами, что является основными существенными вещами под .git
, необходимо, чтобы git работал локально и с удаленным безупречным?
$ pwd
/home/arulmozhi/_/remote-repo/.git
$ rm HEAD
$ cd ..
$ git pull
Already up-to-date.
$ cat README.md
this stuff is from dummy branch
First file in repo which is to be synced across multiple remotes - gitlab and github
$ emacs -nw README.md
$ git commit -am "what happens when we rename/delete .git/HEAD"
[master 34d647b] what happens when we rename/delete .git/HEAD
1 file changed, 2 insertions(+), 1 deletion(-)
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
$ git push
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 401 bytes | 0 bytes/s, done.
Total 4 (delta 2), reused 0 (delta 0)
To [email protected]:remote-repo/remote-repo.git
fa76250..34d647b master -> master
$ uname -arn
Linux koparakesari 3.19.0-31-generiC#36~14.04.1-Ubuntu SMP Thu Oct 8 10:21:08 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ ls -1 .git
branches
COMMIT_EDITMSG
config
description
hooks
index
info
logs
objects
packed-refs
refs
Если вы хотите, чтобы все работало безупречно, предположите, что вы не должны прикасаться к '.git' себе. Любой ответ, который полностью документирует результаты любых изменений вручную, слишком широк для переполнения стека. – chepner
Это означает, что вы должны иметь другую папку .git в '/ home/arulmozhi/_' или'/home/arulmozhi': папка 'remote-repo' может быть вложенным git-репо. – VonC