我正在尝试克隆git存储库。克隆失败,并显示以下消息:
Untracked working tree file ... would be overwritten by merge.
我在所有分支上运行git clean
;没有未跟踪的文件
标记为未跟踪的文件仅用于我当前正在处理的分支中并进行跟踪。
另外,当我签出主分支然后签出我原来正在处理的分支时,我结账成功,但打印出所谓未跟踪文件的名称。这意味着什么?
Checking out files: 100% (477/477), done.
M path-to-file-idenetified-as-untracked
Switched to branch "Original_branch_name"
如何让克隆工作?
我读过有关克隆的内容。我正在制作克隆,因为我想与目前没有副本的其他人分享。
这是我输入的内容,略有编辑。例如,我做了几个cd命令,没有显示。
$ git clone app.git clone/app.git
Initialized empty Git repository in /cygdrive/c/clone/app.git/.git/
error: Untracked working tree file 'C:/app.git/include/template/foo.xml' would be overwritten by merge.
$ git status
# On branch GT
nothing to commit (working directory clean)
$ git rm include/template/foo.xml
rm 'include/template/foo.xml'
$ git commit -m "Removed include/template/foo.xml because clone was failing with the message untracked working tree file would be overwritten by merge "
[GT]: created 77ca4ec: "Removed include/template/foo.xml because clone was failing with the message untracked working tree file would be overwritten by merge "
1 files changed, 0 insertions(+), 89 deletions(-)
delete mode 100755 include/template/foo.xml
$ git clone app.git clone/app.git
Initialized empty Git repository in /cygdrive/c/clone/app.git/.git/
Checking out files: 100% (522/522), done.
$ git commit -m "Added file deleted in previous commit after successfully cloning repository with file deleted"
[GT]: created f3eb7e8: "Added file deleted in previous commit after successfully cloning repository with
file deleted"
1 files changed, 89 insertions(+), 0 deletions(-)
create mode 100755 include/template/foo.xml
$ git clone app.git clone2/app.git
Initialized empty Git repository in /cygdrive/c/clone2/app.git/.git/
error: Untracked working tree file 'C://app.git/include/template/foo.xml' would be overwritten by merge.
答案 0 :(得分:3)
你使用的是什么版本的Git?在什么平台上?
根据操作系统的不同,您可能会遇到一些区分大小写的文件名问题,可能会出现此错误消息,如this thread
所示我将
CONTRIB/ChangeLog
重命名为CONTRIB/ChangeLog.old
并再次尝试,这次它抱怨contrib/README
。
是因为我做了什么错误?我我认为这可能是因为我已将
CONTRIB
重命名为contrib
。 在没有区分大写和小写名称的系统上,这可能导致冲突吗?尝试删除整个
CONTRIB
目录。如果失败,请尝试获取repo的新克隆。这解决了它。感谢。
但是,一旦我添加了该文件的副本(我需要)并提交了它,我再次尝试克隆并回到原来的失败消息
对我来说,尖叫core.ignorecase
设置为真
core.ignorecase
如果为true,则此选项启用各种变通方法,以使git能够更好地处理不区分大小写的文件系统,如FAT。 例如,如果目录列表在git期望“makefile
”时找到“Makefile
”,则git将假定它实际上是同一个文件,并继续将其记住为“Makefile
”。默认值为false,除了
git-clone(1)
或git-init(1)
将在创建存储库时探测并设置core.ignorecase
为真。
您可以查看git config -l
是否包含core.ignorecase
设置吗?
答案 1 :(得分:0)
修改文件的通知:
M path-to-file-idenetified-as-untracked
表示您对相关文件进行了本地的,未提交的更改(仅在分支中跟踪)。
当您尝试将分支合并到主git时,拒绝使用分支中提交的版本覆盖未提交的更改。
在尝试合并之前,尝试将更改提交到分支上的文件。
顺便说一句,我认为你的意思是'合并'而不是'克隆'。您不应该在现有的git存储库上运行'git clone'。答案 2 :(得分:0)
git clone
用于创建新存储库,该存储库是现有存储库的克隆;也就是说,它具有所有相同的文件,分支和标签。
拥有存储库后,通常需要使用git pull
来提取新更改并将其与活动分支合并,或git fetch
将更改提取到远程跟踪分支中,而不将它们合并到您当前活动的分支(如果您确定要合并它们,则可以跟随git merge
。)
有关如何克隆存储库以及如何使用克隆的示例,请参阅Git tutorial。