Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git clone后跟状态显示未跟踪的文件_Git - Fatal编程技术网

git clone后跟状态显示未跟踪的文件

git clone后跟状态显示未跟踪的文件,git,Git,对不起,我是git新手(尽管我非常熟悉cvs和svn等较旧的源代码控制系统) 我的最终目标是通过在本地克隆远程存储库,将文件添加到本地存储库,提交更改,然后将本地存储库推回到远程存储库,从而将文件添加到远程存储库(不在我的计算机上) 我试过这个: git clone ssh://user@server/Users/GitRepo/Project.git <create file locally> git add <localfile> git commit -m "Nar

对不起,我是git新手(尽管我非常熟悉cvs和svn等较旧的源代码控制系统)

我的最终目标是通过在本地克隆远程存储库,将文件添加到本地存储库,提交更改,然后将本地存储库推回到远程存储库,从而将文件添加到远程存储库(不在我的计算机上)

我试过这个:

git clone ssh://user@server/Users/GitRepo/Project.git
<create file locally>
git add <localfile>
git commit -m "Narg"
git push
它告诉我

# Not currently on any branch
# Untracked files:
  followed by a long list of Untracked files.
* remote origin
  Fetch URL: ssh://user@server/Users/GitRepo/Project.git
  Push  URL: ssh://user@server/Users/GitRepo/Project.git
HEAD branch: master
Remote branch:
   master tracked
Local branch configured for 'git pull':
   master merges with remote master
Local ref configured for 'git push':
   master pushed to master (up to date)
* (no branch)
master
remotes/GitRepo/master
remotes/origin/HEAD -> origin/master
remotes/origin/master
这看起来真的很奇怪,如果我刚刚克隆了存储库,为什么文件会被取消跟踪

如果重要的话,远程存储库是全新的,通过svn2git创建

如果我打字

git remote show origin
它告诉我

# Not currently on any branch
# Untracked files:
  followed by a long list of Untracked files.
* remote origin
  Fetch URL: ssh://user@server/Users/GitRepo/Project.git
  Push  URL: ssh://user@server/Users/GitRepo/Project.git
HEAD branch: master
Remote branch:
   master tracked
Local branch configured for 'git pull':
   master merges with remote master
Local ref configured for 'git push':
   master pushed to master (up to date)
* (no branch)
master
remotes/GitRepo/master
remotes/origin/HEAD -> origin/master
remotes/origin/master
如果我打字

git branch -a
它告诉我

# Not currently on any branch
# Untracked files:
  followed by a long list of Untracked files.
* remote origin
  Fetch URL: ssh://user@server/Users/GitRepo/Project.git
  Push  URL: ssh://user@server/Users/GitRepo/Project.git
HEAD branch: master
Remote branch:
   master tracked
Local branch configured for 'git pull':
   master merges with remote master
Local ref configured for 'git push':
   master pushed to master (up to date)
* (no branch)
master
remotes/GitRepo/master
remotes/origin/HEAD -> origin/master
remotes/origin/master
那么我是不是很困惑,一切都正常运转?还是我的git命令做得不对?还是我创建了错误的存储库,所以没有git命令可以正常工作

谢谢,
Chris

Git是一个很好的工具,但是如果没有一个很好的地图,你很容易迷失方向

下面是如何获得该映射(我称之为“gr”表示“graph”,但如果您愿意,也可以称之为“map”):

这是git的一次性设置。现在,每当你迷路时,只要看看地图:

git gr
您的当前位置由单词“HEAD”表示,并且还列出了任何分支名称

您将看到,您目前没有在任何分支上,这听起来比实际情况糟糕得多——实际上这没什么大不了的,这只是意味着您的提交不会以您希望的方式进入主分支

因此,只要回到主分支并在那里提交:

git checkout master
git add yourfile.txt
git commit -m'Narg'
git push

现在再看一看git gr,您将看到HEAD与master处于相同的提交状态,master与origin/master处于相同的提交状态,这意味着您已经准备好了。

git config-l

如果当前git存储库的
core.precomposeunicode=true

试试这个

git config core.precomposeunicode false

这就是为什么

core.precomposeunicode 此选项仅由Git的Mac OS实现使用。当core.precomposeunicode=true时,Git恢复Mac OS对文件名进行的unicode分解。这在Mac OS和Linux或Windows之间共享存储库时非常有用。(需要Windows 1.7.10或更高版本的Git,或cygwin 1.7下的Git)。如果为false,Git将完全透明地处理文件名,这与较旧版本的Git向后兼容


对于其他可能通过谷歌到达这里的人

我遇到了同样的问题-除了我能够推送并且没有收到任何“一切都是最新的”消息。
问题是windows和mac操作系统与linux不同,不区分大小写;但回购协议是在一个区分大小写的操作系统上创建的,它得到了一些文件的两个版本,只有大写和小写字母不同


这有个问题

发生这种情况的另一个原因是:在github Web界面中创建的文件名中带有冒号:
lost:time.txt

git clone之后ssh://user@服务器/Users/GitRepo/Project.git,在
git status
Hope
git checkout
之前运行命令
cd Project.git
将帮助您在git克隆后,我没有名为Project.git的目录-只有名为Project的目录包含我的实际文件。所以我得到了一个非裸存储库(对吧?)。我可以使用“cd.git”,但从那里运行“git status”会出现错误“致命:此操作必须在工作树中运行”抱歉,它应该是
cd Project
。那是个打字错误。你是对的,你正在克隆一个非裸回购协议。您不需要进入
Project/.git
文件夹。您可以从
Project
文件夹本身运行所有git命令。让
git
管理
.git
文件夹。我刚刚找到了同样的东西。我主要关心的不是,如下面的答案所示,正确跟踪状态,而是为什么未跟踪的文件甚至是回购协议的一部分。谢谢!唉,我的git新手仍然在制造问题。。。git图显示了最上面的版本是(HEAD、origin/master、origin/HEAD、GitRepo/master、master),我如何从中判断我当前不在任何分支上?如果我在本地存储库的根文件夹中说“git checkout master”,它会说“致命:无法创建“/Users/blah/blah/.git/index.lock”:设备上没有剩余空间或者“致命:无法写入新索引文件”“设备上没有剩余空间”听起来好像硬盘已满?如果你输入df-h,它会说什么?对于另一个问题,git gr实际上不会告诉您在哪个分支上,只会告诉您当前签出的提交内容以及现有分支指向的提交内容(分支实际上只是一个指针)。对于当前分支,您使用了正确的命令:git branch-a。