首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >后跟状态的git克隆显示未跟踪的文件

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

Stack Overflow用户
提问于 2013-10-24 23:12:20
回答 4查看 9.5K关注 0票数 19

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

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

我试过这个:

代码语言:javascript
复制
git clone ssh://user@server/Users/GitRepo/Project.git
<create file locally>
git add <localfile>
git commit -m "Narg"
git push

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

所以我试着一步一步地来,结果变得更困惑了。

代码语言:javascript
复制
git clone ssh://user@server/Users/GitRepo/Project.git
git status

它告诉我

代码语言:javascript
复制
# Not currently on any branch
# Untracked files:
  followed by a long list of Untracked files.

这似乎真的很奇怪,如果我只是克隆存储库,为什么文件会被取消跟踪?

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

如果我键入

代码语言:javascript
复制
git remote show origin

它告诉我

代码语言:javascript
复制
* 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)

如果我输入

代码语言:javascript
复制
git branch -a

它告诉我

代码语言:javascript
复制
* (no branch)
master
remotes/GitRepo/master
remotes/origin/HEAD -> origin/master
remotes/origin/master

那么,我是不是很困惑,一切都在正常工作?或者是我做错了git命令?或者是我错误地创建了存储库,所以git命令永远不会正常工作?

谢谢,克里斯

EN

回答 4

Stack Overflow用户

发布于 2014-11-01 18:52:30

git config -l

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

尝尝这个,

git config core.precomposeunicode false

这就是为什么。from here

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

票数 9
EN

Stack Overflow用户

发布于 2013-10-25 01:00:42

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

下面是如何获取映射(我将其称为"gr“,表示”图“,但如果您愿意,也可以将其称为" map”):

代码语言:javascript
复制
git config --global alias.gr 'log --graph --full-history --all --color --decorate'

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

代码语言:javascript
复制
git gr

您当前的位置由单词"HEAD“表示,并且还列出了所有分支机构的名称。

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

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

代码语言:javascript
复制
git checkout master
git add yourfile.txt
git commit -m'Narg'
git push

现在再看看git gr,你会发现HEAD与master处于相同的提交状态,而master与原始/master处于相同的提交状态,这意味着您已经做好了准备。

票数 3
EN

Stack Overflow用户

发布于 2018-08-16 11:27:53

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

我遇到了同样的问题--除了我能够推送,并且没有收到任何“一切都在更新”的消息。

问题是windows和mac不同于linux,是不区分大小写的;但repo是在区分大小写的操作系统上创建的,有些文件有两个版本,只有大写和小写字母不同。

有一个关于它的问题here

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19569805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档