Вот сценарий. У меня две машины, «рабочий стол» и «ноутбук».Как сохранить два репозитория git в синхронизации?
На столе я:
mkdir git_test
cd git_test
git init
dd if=/dev/urandom of=test.img bs=1k count=1000
git add test.img
git commit -m "Added first image"
Тогда на ноутбуке я:
git clone [USER]@desktop:/home/[USER]/git_test
cd git_test
dd if=/dev/urandom of=test2.img bs=1k count=1000
git add test2.img
git commit -m "Added second image"
Тогда я хочу GIT репозиторий на моем рабочем столе, чтобы выглядеть как мерзавца репо на моем ноутбуке. На ноутбуке, я выполняю следующее: GIT мастер толчок происхождения
Но я получаю:
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
Как сохранить эти две операции РЕПО в синхронизации?
Сообщения об ошибках, по-видимому, подразумевают, что у git есть те функции, которые я желаю, но по какой-то причине это кажется более сложным рабочим процессом. Я слышал, как кто-то однажды сказал, что вы не можете нажать на ветку, в которой вы сейчас находитесь, может ли кто-нибудь уточнить это как возможное решение? У меня не было бы проблем с решением такого рода, т. Е. Я мог бы работать на определенной ветке на моем ноутбуке и другой ветке на моем рабочем столе, а затем просто синхронизировать их так, чтобы они были одинаковыми.
Обратите внимание на следующее!
Я не хочу, чтобы использовать централизованный репозиторий, как GitHub, по нескольким причинам. Первая - это безопасность. Вторая - простота. В-третьих, из-за обстоятельств я не буду вдаваться здесь, я не могу рассчитывать на подключение к Интернету на каком-то удаленном сервере, у меня есть только две машины, подключенные через LAN. Наконец, я хочу научиться делать то, что я просил здесь, чтобы получить эту конкретную часть знаний.
Я также не хочу использовать голый репо, так как у голого репо есть куча трещин в корневом каталоге. Это уродливо и беспорядочно. Вся причина, по которой я перешел в сторону от подрывной деятельности, заключается в том, что git выглядел как более чистое, децентрализованное решение. Кроме того, у меня есть несколько нетехнических людей, которые будут работать в корневом каталоге рабочего стола, они будут сильно запутаны крутизной. Красота git - это (я думал), что все скрывается в папках .git. Edit: По-видимому, я не был достаточно ясен с этой точки зрения. Представьте, что у меня есть папка «Документы» со следующими подпапками: mydata1 и mydata2. Это не надуманный пример, это именно та проблема, с которой я пытаюсь справиться. mydata1 должен содержать «test.img» и этот файл только, но вместо этого теперь есть:
ветви конфигурации описание ГОЛОВА крючки Информация объекты рефов
Я хотел быть в состоянии просто вставить cd в mydata1 и начать редактирование файлов, но вместо этого я должен попытаться подключиться к ветвям или что-то еще, чтобы просто выполнить работу. И для такой структуры каталогов для каждая подпапка, которая была в «документах», просто неработоспособна. Пожалуйста, пожалуйста, не говорите мне, чтобы я так поступал. Пожалуйста, просто ответьте на вопрос. Благодарю.
Эти два пункта являются целыми причинам. Я размещаю этот вопрос здесь.Пожалуйста, ответьте только, если у вас есть ответ на этот вопрос. :) Благодаря!!
«cruft» Я имею в виду следующее: «описание конфигурации ветвей HEAD hooks info objects refs» Я просто хочу/home/[User]/git_repo содержать только файлы, с которыми я работаю. Также: .git-папки скрыты. –
Вы можете скрыть репо. – nobar