2014-09-25 126 views
0

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


这一直是我的安装过程:

  1. 开放SmartGit - >库 - >添加或创建...
  2. 路径添加到库中我的当前项目文件夹
  3. 选择项目窗格
  4. 阶段(所有文件) - >提交
  5. 分支设置为“主”

我想这是我的中央存储库,文件被推送到,将被备份。

我们创建我的工作库:

  1. 库 - >克隆 - >本地Git仓库 - >路径我刚刚创建的回购
  2. 包括子模块,获取所有元首和标签

我现在已经创建了新的回购协议。在工作回购

  1. 导航到一个文本文件(在回购窗格),打开并编辑:


    现在测试的改变推到中央回购。

  2. 保存更改 - >舞台 - >提交并推送:

错误:

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

按照我的研究,我试试这个:

  1. 在工作回购拉 - >再次基于(推荐的工具提示之后的方法)
  2. 从路径获取/到/中央/回购

我们重试:

  1. 按 - >当前分支 '大师'

还是那句话:

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

我现在尝试修复错误:

  1. (工作回购)合并 - >主 '更改' - >创建合并提交 - >快进

消息:

"Already up-to-date" 
  • 合并 - >主 '更改' - >创建合并-COMMIT
  • 再次:

    "Already up-to-date" 
    

    我然后尝试从中央回购拉动:

    1. (中央回购)拉 - >远程设置 - >路径/要/工作/回购
    2. 不能拉只能取

    当我现在尝试推送更改时仍然出现同样的错误。

    我正在努力寻找如何推到我的中央回购。

    提前致谢!

    +0

    没有与任何git gui客户端一起工作,我发现用git工作并且速度较慢很难。尝试http://msysgit.github.io/。打开git bash到你的git repo文件夹,并运行'$ git fetch','$ git merge --no-ff origin/master'。然后您应该能够推送(如果没有合并冲突)。 '$ git push origin master' – 2014-09-25 00:51:31

    回答

    0

    我怀疑是你的本地master可能没有跟踪origin/master。此外,您的中央存储库应该是,所以我建议你重新开始:

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

    随着SmartGit:

  • 从中央储存库创建一个克隆,采用克隆。这会发出像warning: You appear to have cloned an empty repository.

  • 警告

    将您现有的源/不管到克隆和提交。这会自动将您置于master

  • 最后,调用masterorigin/master之间确认到配置跟踪。

  • +0

    这似乎奏效了!如果我导航到我创建为裸露的中央存储库,则它不包含任何文件。但在文件夹上运行'git ls-tree -r master'会列出文件存在,这是否是正常的git行为? – 2014-09-25 08:37:17

    +0

    * Bare *表示存储库没有工作树。不过,您可以在裸仓库上打开** Log **。在这里,在**文件**视图中,你可以切换到显示*不变*文件,这应该给你相同的输出作为'git ls-tree -r ' – mstrap 2014-09-25 13:26:25

    0

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

    如果低于2.0和您有任何其他分支可能是过时的,试着从一个命令行中键入此:

    git config push.default simple 
    

    这将让Git只推分支上,您目前居住。然后再试一次,看看是否解决了这个问题。