Локальный репозиторий не может извлечь ветку из удаленного репозитория - PullRequest
0 голосов
/ 04 июля 2019

Я успешно использую GitLab с другим локальным разработчиком с небольшими проектами на C и MATLAB.

Работая из дома с помощью VPN, я запихнул большую программу LabVIEW в новый проект, чтобы я мог работать вместе с другимразработчик сайта.Разработчик клонировал проект и начал работу над веткой.

Проблема в том, что я не смог вытащить / получить эту ветку.GitLab показывает ветки и коммиты, которые сделал разработчик.

Я недолго пользуюсь git и поэтому могу просто быть глупым.

Git push: "fatal"origin 'не похоже на git-репозиторий - фатальный Не удалось прочитать из удаленного репозитория. "

Я рассмотрел это, в частности, но не сделал это работать, ниже приведены некоторые вещи, которые япопробовал.

$ git remote remove somelongcode
fatal: No such remote: 'somelongcode'

$ git remote add origin
usage: git remote add [<options>] <name> <url>

    -f, --fetch           fetch the remote branches
    --tags                import all tags and associated objects when fetching
                          or do not fetch any tag at all (--no-tags)
    -t, --track <branch>  branch(es) to track
    -m, --master <branch>
                          master branch
    --mirror[=(push|fetch)]
                          set up remote as a mirror to push to or fetch from

$ git remote master --prune
error: Unknown subcommand: master
usage: git remote [-v | --verbose]
   or: git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--mirror=<fetch|push>] <name> <url>
   or: git remote rename <old> <new>
   or: git remote remove <name>
   or: git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
   or: git remote [-v | --verbose] show [-n] <name>
   or: git remote prune [-n | --dry-run] <name>
   or: git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]
   or: git remote set-branches [--add] <name> <branch>...
   or: git remote get-url [--push] [--all] <name>
   or: git remote set-url [--push] <name> <newurl> [<oldurl>]
   or: git remote set-url --add <name> <newurl>
   or: git remote set-url --delete <name> <url>

    -v, --verbose         be verbose; must be placed before a subcommand
________________________
$ git fetch 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 reset --hard origin/master
fatal: ambiguous argument 'origin/master': unknown revision or path not `in the working tree.`
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

Я вижу удаленную ветку.Это самое обнадеживающее, по крайней мере, я вижу пульт, даже если я не могу синхронизироваться с локальным репозиторием

$ git ls-remote
From git@gitlab.com:group/project.git
somelongcode        HEAD
somelongcode        refs/heads/apploc
somelongcode        refs/heads/master

Как вы видите локально, я не вижу ветку


$ git pull
From gitlab.com:group/project
 * branch            master     -> FETCH_HEAD
Already up to date.

$ git branch
* master

$ git remote show origin
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.

Ответы [ 4 ]

0 голосов
/ 04 июля 2019

Привет @Yannoff и всем, кто смотрел на это.Спасибо за помощь.Я думаю, что попробовал почти все с Bash.Я клонировал проект на другой машине и все заработало как положено.Затем я снова клонировал его на моей машине, и снова все работало нормально.Это был мой оригинальный локальный репозиторий, который вызывал проблемы.Интересно, повлияла ли работа из дома через VPN?Теперь все работает, но не мой первоначальный локальный репозиторий.

Однако теперь мне стало понятнее, как все это работает с помощью веб-ссылок, которые вы мне дали, так что не все было в порядке!

Очень хороший сайт - https://www.atlassian.com/git/tutorials

0 голосов
/ 04 июля 2019

Структура любого git-репо везде одинакова, вы можете проверить свои локальные филиалы в папке .git / refs /head или с помощью команды git branch Что касается того, что в пульте, объявленном в вашем репо, вы можете увидеть их в .git / refs / remotes / или с помощью команды git branch -a и проверить красные линии. Теперь, когда речь идет о предмете, любому git-репо необходимо знать URL-адрес и имя любого пульта, который вы собираетесь использовать, и вы можете использовать git remote для управления ими, поэтому, если вы хотите перечислить их, используйте git remote, перечислить Вверх и Вниз поток каждого использования git remote -v добавить новый remot git remote add <remote_name> <remote_url> удаленный URL составляется следующим образом, если вы используете ssh git@<server_address>:<name_space>/<repo_name>.git, поэтому он состоит из: адрес сервера, если вы используете gitlab gitlab.com, пространство имен name group, как вы упоминали, и, наконец, имя repo witch в нашем случае project, но вам все еще нужно расширение .git в конце URL-адреса, вы также можете скопировать URL-адрес из интерфейса gitlab, нажав на кнопку клонирования, которая покажет вам URL-адрес с помощью ssh, а другой с HTTPS. Теперь, если вы правильно настроили свой пульт, вам нужно будет обновить свой локальный репозиторий с помощью пульта с помощью команды git fetch <remote_name>, которая загрузит все ветви с пульта в вашу папку .git / refs / remotes /, а затем, если у вас есть ветка, которая там есть, и нет локальной ветки зеркала (.git / refs /head), вы можете создать ее самостоятельно, чтобы добавить другие коммиты поверх нее, используя команду git checkout -b <branch_name> <remote_name>/<branch_name>.

0 голосов
/ 04 июля 2019

Попробуйте ниже

$ git remote add origin remote/repository/URL
# Sets the new remote

$ git remote -v
# Verifies the new remote URL

Тогда

git pull origin branch_name
0 голосов
/ 04 июля 2019

Чтобы синхронизировать список веток вашего локального репозитория с удаленным, используйте git fetch

Таким образом, ваша команда должна выглядеть примерно так:

git fetch somelongcode

Тогда вам следуетиметь актуальный список филиалов:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...