Использование 'git remote add origin' создает глобальный удаленный вместо одного локального к текущему каталогу / repo - PullRequest
3 голосов
/ 10 сентября 2011

Решение: Наконец-то понял проблему.Глупая ошибка пользователя.Забыл сначала запустить ' git init ' в новом каталоге проекта.Следовательно, запустив ' git add. ', ' git remote add origin repo.git ' (или даже опечатку ' git add origin repo.git ')в каталоге без git-репо вернется к глобальному применению команды, следовательно, все родительские и другие каталоги в результатах git .


Я использовалдерьмо какое-то время и никогда не сталкивался с этой проблемой, не уверен, что происходит.В двух словах, использование 'git remote add origin git@github.com...' создает глобальный удаленный элемент во всей моей файловой системе вместо локального в текущем каталоге.Он даже перезаписывает пульты в других боковых каталогах.

Код стоит тысячи слов, каждый знает, что здесь происходит:

prompt:~/bin/Projects$ ls -al
total 56
drwxr-xr-x 15 kurtosis kurtosis 4096 2011-09-09 21:35 .
drwxr-xr-x 26 kurtosis kurtosis 4096 2011-09-09 21:35 ..
drwxr-xr-x  5 kurtosis kurtosis 4096 2011-06-16 13:42 byrongibson.com
drwxr-xr-x  5 kurtosis kurtosis 4096 2011-06-16 13:44 byrongibson.github.com
drwxr-xr-x  3 kurtosis kurtosis 4096 2011-09-09 21:33 know.io
drwxr-xr-x  3 kurtosis kurtosis 4096 2011-06-16 13:45 problem-sets
drwxr-xr-x  2 kurtosis kurtosis 4096 2011-07-18 20:11 vim~
prompt:~/bin/Projects$ git remote -v
prompt:~/bin/Projects$ cd know.io/
prompt:~/bin/Projects/know.io$ ls -al
total 16
drwxr-xr-x  3 kurtosis kurtosis 4096 2011-09-09 21:33 .
drwxr-xr-x 15 kurtosis kurtosis 4096 2011-09-09 21:35 ..
-rw-r--r--  1 kurtosis kurtosis    7 2011-09-09 21:27 README.md
drwxr-xr-x  2 kurtosis kurtosis 4096 2011-09-09 21:27 vim~
prompt:~/bin/Projects/know.io$ git remote -v
prompt:~/bin/Projects/know.io$ git remote add origin git@github.com:byrongibson/know.io.git
prompt:~/bin/Projects/know.io$ git remote -v
origin  git@github.com:byrongibson/know.io.git (fetch)
origin  git@github.com:byrongibson/know.io.git (push)
prompt:~/bin/Projects/know.io$ cd ..
prompt:~/bin/Projects$ git remote -v
origin  git@github.com:byrongibson/know.io.git (fetch)
origin  git@github.com:byrongibson/know.io.git (push)
prompt:~/bin/Projects$ cd ~
prompt:~$ git remote -v
origin  git@github.com:byrongibson/know.io.git (fetch)
origin  git@github.com:byrongibson/know.io.git (push)
prompt:~$ cd bin/Github
prompt:~/bin/Github$ git remote -v
origin  git@github.com:byrongibson/know.io.git (fetch)
origin  git@github.com:byrongibson/know.io.git (push)
prompt:~/bin/Github$ 

Update1: Эта проблема таинственно ушла.Понятия не имею, что я сделал и почему.Если я это выясню, обновлю с ответом.

Update2: Я сделал это снова с другим хранилищем.На этот раз я думаю, что это потому, что когда я настраивал хранилище и добавлял удаленный источник, я сделал опечатку и сделал следующее:

> git add origin git@github.com/.../repo.git

Например, я забыл «удаленный».Это установило глобальный источник в ~ / .git / config равным:

[remote "origin"]
    url = git@github.com/.../repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

Удаление этого из конфигурации удаляет глобальный источник, но, к сожалению, когда я возвращаюсь в мой новый репозиторий и использую «git add.»,он добавляет не только каждый файл и каталог в моем репо, но, по-видимому, все, что находится за пределами моего репо, но не в моем глобальном .gitignore:

prompt:~/bin/Projects/Haskell/Courses/Stanford$ git remote -v
prompt:>~/bin/Projects/Haskell/Courses/Stanford$ git remote add origin git@github.com:byrongibson/stanford-fall2011-cs240h.git
prompt:>~/bin/Projects/Haskell/Courses/Stanford$ git remote -v
origin  git@github.com:byrongibson/stanford-fall2011-cs240h.git (fetch)
origin  git@github.com:byrongibson/stanford-fall2011-cs240h.git (push)
prompt:>~/bin/Projects/Haskell/Courses/Stanford$ git add .
prompt:>~/bin/Projects/Haskell/Courses/Stanford$ ls -al
total 12
drwxr-xr-x 3 byron byron 4096 2011-09-26 18:19 ./
drwxr-xr-x 3 byron byron 4096 2011-09-26 18:19 ../
drwxr-xr-x 2 byron byron 4096 2011-09-26 18:09 Lectures/
prompt:>~/bin/Projects/Haskell/Courses/Stanford$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   Lectures/basics1-slides.html
#   new file:   Lectures/basics1.html
#   new file:   Lectures/basics1.md
#   new file:   ../../../../btccx/btc.cx/README
#   new file:   ../../../../btccx/btc.cx/README.md
#
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   ../../../../../.gitconfig
#   modified:   ../../../../../.profile
#   modified:   ../../../../../Downloads/Keys/chromiumppa_key.html
#   modified:   ../../../../../Downloads/Keys/chromiumppa_key.pub
#   modified:   ../../../../../Downloads/Keys/linux_signing_key.pub
#   modified:   ../../../../../Downloads/Keys/tor-key-install.sh
#   deleted:    ../../../../btccx/btc.cx/README
#   deleted:    ../../../../btccx/btc.cx/README.md
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   ../../../../../.FBReader/
#   ../../../../../.ICEauthority
#   ../../../../../.Skype/
#   ../../../../../.SpiderOak/
.
.
.
#   ../../../../../Downloads/xmonad-ubuntu.html
#   ../../../../../Downloads/xmonad-ubuntu_files/
#   ../../../../../Dropbox/
#   ../../../../../Music/
#   ../../../../../Pictures/
#   ../../../../../SpiderOak/
#   ../../../../../Ubuntu One/
#   ../../../../../Videos/
#   ../../../../Archive/
#   ../../../../Clients/
#   ../../../../CryptoCurrency/
#   ../../../../Databases/
#   ../../../../Git/
#   ../../../../Go/
#   ../../../../Google/
#   ../../../../Hosts/
#   ../../../99-scala-problems/
#   ../../LYaH/
#   ../../RWH/

Ответы [ 2 ]

5 голосов
/ 10 сентября 2011

Обычно вы получаете следующую ошибку, если вы запускаете git remote -v вне git-репозитория:

$ git remote -v
fatal: Not a git repository (or any of the parent directories): .git

Я думаю, что случилось то, что вы случайно запустили git init в своем домашнем каталоге в какой-то момент, что объяснило бы то, что вы видите. Если вы запустите:

git rev-parse --show-toplevel

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

1 голос
/ 27 сентября 2011

Решение: Просто чтобы прояснить объяснение выше: я забыл сначала запустить ' git init ' в новом каталоге проекта.Следовательно, запустив ' git add. ', ' git remote add origin repo.git ' (или даже опечатку ' git add origin repo.git ')в каталоге без git-репо вернется к глобальному применению команды, следовательно, все родительские и другие каталоги в результатах git .

Запуск ' git init ', затем' git remote add origin repo.git 'исправляет все вышеперечисленное.

...