В настоящее время я пытаюсь сохранить некоторые файлы в чистом репозитории git, как описано здесь:

https://news.ycombinator.com/item?id=11071754

Однако я пробую это с Git для Windows, а не на машине Linux. Создается чистый репозиторий git, но мне трудно заставить push работать правильно. Вот что я сделал:

username@hostname MINGW64 ~/Desktop
$ mkdir .myconf

username@hostname MINGW64 ~/Desktop
$ git init --bare "/c/Users/username/Desktop/.myconf"
Initialized empty Git repository in C:/Users/username/Desktop/.myconf/

username@hostname MINGW64 ~/Desktop
$ alias config="git --git-dir='/c/Users/username/Desktop/.myconf' --work-tree='/c/Users/username/Desktop/'"

username@hostname MINGW64 ~/Desktop
$ config config status.showUntrackedFiles no

username@hostname MINGW64 ~/Desktop
$ config status
On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)

username@hostname MINGW64 ~/Desktop
$ config add test.txt

username@hostname MINGW64 ~/Desktop
$ config commit -m "Added test file."
[master (root-commit) a587ec1] Added test file.
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt

Пока все работает правильно. Однако когда я пытаюсь push, происходит следующее:

username@hostname MINGW64 ~/Desktop
$ config push
fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using

    git remote add <name> <url>

and then push using the remote name

    git push <name>

Также не работает push к origin master:

username@hostname MINGW64 ~/Desktop
$ config push origin master
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

По-видимому, git нужен пункт назначения для отправки.

Я не видел, чтобы установка такого пункта назначения была необходимым шагом в связанном описании (и ни в каких производных сообщениях блога), и я не уверен, как это сделать с Git для Windows. Как это решить?

1
so23 18 Фев 2016 в 03:41

3 ответа

Лучший ответ

Вам необходимо определить remote Итак, Git знает, куда нажимать. По умолчанию remote называется origin и будет URL-адресом, на который Git будет отправлять.

Например, если вы пытались выполнить отправку в ядро Linux, команда будет выглядеть так:

git remote add origin https://github.com/torvalds/linux.git
1
Jonathan.Brink 18 Фев 2016 в 00:44

Для распределенных VCS, таких как git, push - это механизм синхронизации между локальной и удаленной ветвью. вы должны указать соединение локальной ветки и удаленной ветки, прежде чем нажимать, для чего в git он ссылается как «восходящий поток» или «отслеживание».

Если вы хотите отправить фиксацию на удаленный без клонирования. вы можете добавить удаленный репозиторий в качестве нового удаленного, проверить ветку, которую вы хотите зафиксировать, и заставить ее отслеживать удаленную ветку, добавить свою модификацию в эту новую ветку и сделать push.

0
gzh 18 Фев 2016 в 01:29

Вам нужно указать git, где находится удаленный репозиторий. Использование:

config remote add origin "<path>"

Где путь - это URL-адрес или каталог.

Если вы хотите понять, почему .myconfig не является удаленным репо, которое вы нажимаете, чтобы прочитать что-нибудь вроде этого: http://www.sbf5.com/~cduan/technical/git/

0
Massey101 18 Фев 2016 в 01:28