2015-12-10 142 views
2

我在Windows上使用最新的git bash(git版本2.6.3.windows.1),我试图覆盖我的本地回购。首先,我做的:无效的对象名称'C'

git fetch /c/users/xxx/dropbox/repo/master 

然后我做

git reset --hard /c/users/xxx/dropbox/repo/master 

但混帐回来了:

fatal: Invalid object name 'C'. 

什么是错误消息的含义是什么?

+0

如果使用/产地/主,而不是产地/主同样的信息。这个晦涩的信息需要一些解释。 (如果以“/”开始,预期会有什么对象?) – pdem

回答

3

这是因为reset的参数是“tree-ish”,例如分支名称或sha。

所以,我想你想的命令是:

cd /c/users/xxx/dropbox/repo 
git fetch 
git reset --hard origin/master 

关于您的评论编辑:

如果您使用的是远程回购交互,你可能要在远程界定其所。

例如:

git remote add dropbox <dropbox url> 

然后,命令将变为:

git fetch dropbox 
git reset --hard dropbox/master 

你可能想dropbox/master,而不是仅仅masterreset命令,因为接你只是没有会更新您的本地dropbox/master分支指针而不是您的master分支指针。

https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes

https://git-scm.com/docs/git-reset

+0

Dropbox是我的远程回购。我当前的位置是我的本地回购,它位于不同的文件夹中。这会改变你的答案吗? – chhenning

+0

@chhenning我看到了...我更新了我的答案 –

+0

总之,答案是我需要使用别名来远程回购使用git reset --hard? – chhenning