git clone后跟status显示未跟踪的文件

vfh0ocws  于 2023-01-15  发布在  Git
关注(0)|答案(5)|浏览(180)

对不起,我是一个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命令能正常工作?
谢谢,克里斯

laik7k3q

laik7k3q1#

Git是一个很棒的工具,但是如果没有一个很好的Map来显示你在提交的森林中所处的位置,你很容易迷失方向。
下面是如何获得该Map(我称之为“gr”,代表“graph”,但如果您愿意,也可以称之为“map”):

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

这是git的一次性设置,现在无论何时你迷路了,只要看看Map:

git gr

您的当前位置由单词“HEAD”表示,并且还列出了所有分支名称。
你会发现你现在不在任何分支上,这听起来比实际情况糟糕多了--其实没什么大不了的,这只是意味着你的提交不会按照你想要的方式进入master分支。
所以,回到你的master分支,在那里提交:

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

现在再看一下git gr,你会看到HEAD和master在同一个提交,master和origin/master在同一个提交,这意味着你已经准备好了。

pkbketx9

pkbketx92#

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

mm5n2pyu

mm5n2pyu3#

对我来说,主要问题是长路径,将git配置设置为以下,然后结帐

git config --system core.longpaths true
ifsvaxew

ifsvaxew4#

git config -l
如果当前git仓库的core.precomposeunicode=true
试试这个,
git config core.precomposeunicode false
这就是为什么. from here
core.precomposeunicode此选项仅适用于Git的Mac OS实现。当core.precomposeunicode=true时,Git将恢复Mac OS对文件名的unicode分解。这在Mac OS和Linux或Windows共享仓库时非常有用。(需要Git for Windows 1.7.10或更高版本,或者需要Git for cygwin 1.7)当为false时,文件名由Git完全透明地处理,它向后兼容旧版本的Git。

wlzqhblo

wlzqhblo5#

对于其他人谁可能到达这里的谷歌。
我遇到了同样的问题-除了我能够推动,并没有得到任何“一切最新”的消息。
问题是windows和mac操作系统不像linux,是大小写不敏感的;但repo是在区分大小写的操作系统上创建的,有些文件有两个版本,只是大小写不同。
有一个关于它的问题。

相关问题