使用SmartGit在本地设置Git时推/拉错误

时间:2014-09-25 00:22:32

标签: git version-control smartgit

我想开始在我的本地PC上使用DVCS和Git进行项目。它是一个私人项目,允许我跟踪变化和版本,并且将来允许外部开发人员为项目做出贡献。 现在虽然我想坚持使用本地设置。 我使用SmartGit作为我的git客户端。


这是我的设置过程:

  1. 打开SmartGit - >存储库 - >添加或创建...
  2. 添加我当前项目文件夹的路径
  3. 在存储库窗格中选择项目
  4. 舞台(所有文件) - >提交
  5. 分支设置为' master'
  6. 我希望这是我的中央存储库,用于推送的文件,这些文件将被备份。

    现在创建我的工作存储库:

    1. 存储库 - >克隆 - >本地Git存储库 - >我刚创建的回购路径
    2. 包含子模块,获取所有头部和标签
    3. 我的新回购现已创建。


      现在测试更改以推送到中央仓库:

      1. 导航到工作仓库中的文本文件(在repo窗格中),然后打开并编辑它。
      2. 保存更改 - >阶段 - >提交和推送:
      3. 错误:

        Error not all refs have been pushed -> 'master' rejected (non-fast-forward)
        

        根据我的研究,我试试这个:

        1. 在工作回购中拉 - > Rebase(遵循工具提示的推荐方式)
        2. 从Path / To / Central / Repo
        3. 获取
        4. 现在重试:

          1. 推送 - >现任分公司'
          2. 再次:

            Error not all refs have been pushed -> 'master' rejected (non-fast-forward)
            

            我现在尝试修复错误:

            1. (工作回购)合并 - >掌握'变化' - >创建合并提交 - >快进
            2. 消息:

              "Already up-to-date"
              
              1. 合并 - >掌握'变化' - >创建合并提交
              2. 再次:

                "Already up-to-date"
                
                然后我尝试从中央仓库拉出来:

                1. (中央回购)拉 - >设置远程 - >路径/到/工作/回购
                2. 不能只提取
                3. 当我现在尝试推动更改时,仍然是同样的错误。

                  我正在努力寻找如何推动我的核心回购。

                  提前致谢!

2 个答案:

答案 0 :(得分:0)

你使用的是什么版本的Git?在Git v2.0之前,默认行为是在执行推送时将所有分支推送到远程。可能是你所在的分支以外的分支与遥控器已经过时了。

如果您低于2.0并且您有任何其他分支可能已过期,请尝试从命令行键入:

git config push.default simple

这将告诉Git只推送您当前所在的分支。然后尝试另一次推送,看看是否能解决问题。

答案 1 :(得分:0)

我怀疑您的本地master可能无法跟踪origin/master。此外,您的中央存储库应该,因此我建议重新开始:

  1. 确保您的中央存储库是裸露的。因此,从命令行使用`git init --bare'创建一个新的存储库。
  2. 使用SmartGit:

    1. 使用克隆从中央存储库创建克隆。这会发出类似warning: You appear to have cloned an empty repository.

    2. 的警告
    3. 将现有资源/任何内容移至克隆中并提交。这会自动将您带到master

    4. 最后,在masterorigin/master之间调用推送并确认配置跟踪。