我遇到了一个问题,我不小心将目录复制到了自己的子目录中,从而创建了数千个git事务。在尝试清理它之后,我决定创建一个新项目并从旧文件中复制文件。不知怎的,我觉得我搞砸了git,但我不确定问题出在哪里。这是我目前的症状。
我以为我正确地初始化了git存储库。但是,github上没有文件存在。
https://github.com/victorengel/matchismo2
......除了我在那里创造的东西。
项目本身是我在启用git时创建的iOS单视图应用程序。我将旧项目所需的所有文件复制到新项目区域,确认它已运行,然后尝试提交。提交似乎有效,但推动没有。
如果我尝试推送,我收到一条消息,说工作副本已经过时,我应该拉一下。如果我尝试拉,它说有未提交的更改,我应该放弃它们或提交它们。在一些根深蒂固之后,我发现触发这个的更改是应该在.gitignore中忽略的用户数据更改。
我终于让.gitignore以它需要的方式设置。我认为存储库是在github.com上设置的,但我仍然遇到错误。
我可以承诺而不是推动。如果我试图推送,我会收到消息“工作副本已过期。请尝试从遥控器中取出以获取最新更改,然后再次推送。”
如果我尝试拉,我收到消息“matchismo2 / master”不是一个有效的远程分支来拉。请选择其他远程分支。
环顾github.com,在victorengel / matchismo2下只有一个分支机构。对我来说,看起来一切都设置得很好,但显然我错过了一些东西。它是什么?
在Xcode中,在组织者中,如果我点击分支,则会列出一个项目:master。 如果我点击遥控器,有一个项目,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)
答案 0 :(得分:0)
如何确保所有文件都有序,重命名分支,并推送到新的(重命名的分支)?然后,一旦确定了您需要的所有内容并且您的新代码正常工作,您就可以强制更新主代码。这不是一个理想的方法,但它可能适合你。