3

我遇到了一个问题,我不小心将一个目录复制到了它自己的子目录中,从而创建了数千个 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)
4

1 回答 1

0

如何确保所有文件都井井有条,重命名分支并推送到新的(重命名的分支)?然后,一旦您确定所需的一切实际上都在那里并且您的新代码有效,您就可以强制更新 master。这不是一个理想的方法,但它可能对你有用。

于 2014-02-18T18:22:10.810 回答