繁体   English   中英

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

[英]git clone followed by status shows untracked files

抱歉,我是 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 命令可以正常工作?

谢谢,克里斯

git config -l

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

试试这个,

git config core.precomposeunicode false

这就是原因。 从这里

core.precomposeunicode此选项仅供Mac操作系统实现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是一个很棒的工具,但如果没有一张好的地图,你就很容易迷失方向。

以下是如何获取该地图(我称之为“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在同一个提交中,这意味着你已经完成了设置。

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

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

这里有一个问题在这里了。

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

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

git config --system core.longpaths true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM