我遇到了一个问题,我不小心将一个目录复制到了它自己的子目录中,从而创建了数千个 git 事务。在尝试清理它失败后,我决定创建一个新项目并从旧项目复制文件。不知何故,我认为我搞砸了,但我不确定问题出在哪里。这是我目前的症状。
我以为我正确初始化了 git 存储库。但是,github 上不存在任何文件。
https://github.com/victorengel/matchismo2
...除了我在那里创造的东西。
该项目本身是一个 iOS 单视图应用程序,我在启用 git 的情况下创建。我将我需要的所有文件从旧项目复制到新项目区域,确认它运行,然后尝试提交。提交似乎有效,但推送没有。
如果我尝试推送,我会收到一条消息,指出工作副本已过时,我应该进行拉取。如果我尝试拉,它说有未提交的更改,我应该放弃它们或提交它们。经过一番摸索,我发现触发此事件的更改是用户数据更改,应该在 .gitignore 中忽略。
我终于按照需要的方式设置了 .gitignore。我认为存储库是在 github.com 上设置的,但我仍然遇到错误。
我可以提交但不能推动。如果我尝试推送,我会收到消息“工作副本已过期。尝试从远程拉取最新更改,然后再次推送。”
如果我尝试拉动,我会收到消息“matchismo2/master”不是要从中拉出的有效远程分支。请选择不同的远程分支。
环顾github.com,只有一个分支,victorengel/matchismo2下的master。对我来说,看起来一切都设置正确,但显然我错过了一些东西。它是什么?
在 Xcode 的管理器中,如果我单击分支,则会列出一项:master。如果我单击 Remotes,则有一项,matchismo2,如果我展开它,则会列出 master。
我一直假设这个 matchismo2 和下面的 master 应该与错误消息中的“matchismo2/master”相匹配。对我来说看起来很匹配,为什么它不起作用?
编辑:如果我尝试从 GitHub 应用程序中提取,我会收到一条错误消息“服务器上还没有任何远程分支。” 如果我尝试从 GitHub 发布,我会得到以下信息:
git: 'credential-osxkeychain' is not a git command. See 'git --help'.
2013-03-05 16:32:43.680 GitHub for Mac Login[68518:707] AskPass with arguments: (
"/Users/brillig/Downloads/GitHub.app/Contents/MacOS/GitHub for Mac Login",
"Password for 'https://victorengel@github.com': "
)
2013-03-05 16:32:43.763 GitHub for Mac Login[68518:707] Error reading attributes: OSStatus -2033889429
2013-03-05 16:32:43.764 GitHub for Mac Login[68518:707] Error reading attributes: OSStatus -2033889429
2013-03-05 16:32:43.919 GitHub for Mac Login[68518:707] Error reading attributes for password: OSStatus 840183217
git: 'credential-osxkeychain' is not a git command. See 'git --help'.
To https://victorengel@github.com/victorengel/matchismo2.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://victorengel@github.com/victorengel/matchismo2.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
(256)