El uso de 'git remote add origin' crea un control remoto global en lugar de un directory / repos de local a actual

Solución: Finalmente me di count del problema. Estúpido error de usuario Olvidé primero ejecutar ' git init ' en el nuevo directory del proyecto. Por lo tanto, ejecutando ' git add. ',' git remote add origin repo.git '(o incluso el error tipográfico' git add origin repo.git ') en un directory sin un git repo, volverá a aplicar el command globalmente, por lo tanto todos los directorys padre y otros en el resultados de estado de git .


He estado usando un git por un time y nunca he llegado a este problema, no estoy seguro de lo que está pasando. En pocas palabras, usar 'git remote add origin git@github.com...' crea un control remoto global en todo mi sistema de files, en lugar de uno local dentro del directory actual solamente. Incluso sobrescribe los controles remotos en otros directorys laterales.

El código vale más que mil palabras, cualquiera sabe lo que está pasando aquí:

 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$ 

Actualización1: este problema desapareció misteriosamente. No tengo idea de lo que hice ni por qué. Si lo resuelvo, se actualizará con la respuesta.

Actualización2: lo hice de nuevo con otro repository. Esta vez creo que fue porque, cuando estaba configurando el repository y agregando el origen remoto, hice un error tipográfico e hice esto:

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

Por ejemplo, me olvidé de 'remoto'. Eso estableció el origen global en ~ / .git / config para:

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

Eliminar eso de config elimina el origen global, pero desafortunadamente cuando return a mi repository nuevo y uso 'git add.', No solo agrega todos los files y directorys en mi repository, sino que aparentemente todo lo que está fuera de mi repository no está en mi global .gitignore también:

 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/ 

Normalmente obtendría el siguiente error si ejecuta git remote -v fuera de un repository de git:

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

Supongo que lo que sucedió es que accidentalmente ejecutaste git init en tu directory personal en algún momento, lo que explicaría lo que estás viendo. Si tu corres:

 git rev-parse --show-toplevel 

Eso debería mostrarle el nivel superior del repository git en el que se encuentra realmente.

Solución: solo para aclarar la explicación anterior: olvidé ejecutar ' git init ' en el nuevo directory del proyecto primero. Por lo tanto, ejecutando ' git add. ',' git remote add origin repo.git '(o incluso el error tipográfico' git add origin repo.git ') en un directory sin un git repo, volverá a aplicar el command globalmente, por lo tanto todos los directorys padre y otros en el resultados de estado de git .

Al ejecutar ' git init ', luego ' git remote add origin repo.git ' corrige todo lo anterior.