解决方案:最终实现了这个问题。愚蠢的用户错误。忘记先在新的项目目录中运行'git init‘。因此,在没有git的目录中运行'git .‘、'git远程添加源repo.git’(甚至是错误'git添加源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/*从配置中删除该内容将删除全局来源,但不幸的是,当我cd返回到新的repo中并使用“git”时,它不仅添加了回购中的每个文件和目录,而且很明显,在回购之外的所有内容也不在我的全局.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/发布于 2011-09-10 05:12:24
如果在git存储库外运行git remote -v,通常会得到以下错误:
$ git remote -v
fatal: Not a git repository (or any of the parent directories): .git我猜想所发生的事情是,您在某个时候意外地在主目录中运行了git init,这将解释您所看到的内容。如果你跑:
git rev-parse --show-toplevel这将向您展示实际所处的git存储库的顶层。
发布于 2011-09-27 02:38:07
解决方案:只是为了澄清上面的解释:我忘了先在新的项目目录中运行'git‘。因此,在没有git的目录中运行'git .‘、'git远程添加源repo.git’(甚至是错误'git添加源repo.git'),将恢复到全局应用该命令,从而导致git状态中的所有父目录和其他目录。
运行'git init',然后'git远程添加源repo.git‘修复上面的所有内容。
https://stackoverflow.com/questions/7369704
复制相似问题