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

时间:2013-10-24 15:12:20

标签: git

对不起,我是一个git新手(虽然我对cvs和svn等旧的源代码控制系统非常熟悉)...

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

我试过了:

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

但它只是说“一切都是最新的”。

所以我尝试了一步一步,更加困惑。

git clone ssh://user@server/Users/GitRepo/Project.git
git status

它告诉我

# Not currently on any branch
# Untracked files:
  followed by a long list of Untracked files.

这看起来很奇怪,如果我只是克隆了存储库,为什么文件不会被跟踪?

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

如果我输入

git remote show origin
它告诉我

* 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)

如果我输入

git branch -a
它告诉我

* (no branch)
master
remotes/GitRepo/master
remotes/origin/HEAD -> origin/master
remotes/origin/master

所以我只是困惑,一切都在正常工作?或者我在做git命令错了?或者我是否错误地创建了存储库,因此没有git命令可以正常工作?

谢谢, 克里斯

4 个答案:

答案 0 :(得分:7)

git config -l

如果当前git存储库&#39; s core.precomposeunicode=true

试试这个,

git config core.precomposeunicode false

这就是原因。 from here

  

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

答案 1 :(得分:2)

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

以下是如何获取该地图(我将其称为“gr”代表“图形”,但如果您愿意,也可以将其称为“地图”):

git config --global alias.gr 'log --graph --full-history --all --color --decorate'

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

git gr

您当前的位置用“HEAD”字样表示,并且还列出了所有分支名称。

你会发现你现在不在任何分支上,这听起来比实际情况要糟糕得多 - 它实际上没什么大不了的,它只是意味着你的提交不会像你那样进入主分支想要他们。

所以回到你的主分支并在那里提交:

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

现在再看一下git gr,你会发现HEAD和master是同一个提交,master和origin / master在同一个提交中,这意味着你已经全部设置了。 / p>

答案 2 :(得分:2)

适用于可能通过Google到达此处的其他人。

我遇到了同样的问题-只是我能够推送并且没有收到任何“最新消息”。
问题在于,与Linux不同,Windows和Mac OS不区分大小写。但是repo是在区分大小写的OS上创建的,并且有两个版本的某些文件,仅大小写和小写字母不同。

有一个问题here

答案 3 :(得分:1)

可能会发生的另一个原因:在github Web界面中创建的名称中带有冒号的文件:lost:time.txt