Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件提交回GitHub for Windows_Git_Github - Fatal编程技术网

将文件提交回GitHub for Windows

将文件提交回GitHub for Windows,git,github,Git,Github,我和我的同事正在做一个Android项目,他最近在我的电脑上建立了一个GitHub回购协议 . 最后,我在64位Windows7机器上下载并安装了GitHub for Windows。然后我转到GitHub上的repo,使用“在Windows中克隆”按钮克隆项目 一切似乎进展顺利,项目正在进行中 C:\Android\git-repos\OurProject 在我的机器上。然后我对文件做了一些更改 C:\Android\git-repos\OurProject\Host\Android\sr

我和我的同事正在做一个Android项目,他最近在我的电脑上建立了一个GitHub回购协议 . 最后,我在64位Windows7机器上下载并安装了GitHub for Windows。然后我转到GitHub上的repo,使用“在Windows中克隆”按钮克隆项目

一切似乎进展顺利,项目正在进行中

C:\Android\git-repos\OurProject
在我的机器上。然后我对文件做了一些更改

C:\Android\git-repos\OurProject\Host\Android\src\com\ourproject\client\SettingsActivity.java
然后我观察到更改的文件(以及一些更改的构建文件)确实出现在我的机器上的GitHub版本上,如下所示

我选择了“
SettingsActivity.java
”文件,填写了一个简短的描述并点击了“
Commit
”按钮。然后我看到了下面的屏幕

然后,当我点击“同步”时

我希望我所做的更改能被推回到主回购协议上,我得到了以下信息

unstaged changes
You cannot sync with unstaged changes. Please commit your changes and try again.
为什么我会收到这个错误消息

我确实看过这条线

看来,我们必须采取以下步骤

  • git添加
  • git提交
  • git推送
  • 但是从这个线索

    “同步”按钮可能会同时执行这三项操作?因此,我不确定如何准确地进行我的提交。我认为我已经提交了我的更改(在上一步中)这一事实意味着我已经准备好了这些更改,这就是为什么提供同步选项的原因。如果您能帮助解决这个问题,我们将不胜感激


    备注:我还联系了GitHub支持团队,并在下面发布了他们的解决方案。

    您提交了一个文件,但不是所有文件。
    您将无法与包含某些正在进行的更改的工作树同步。

    所述更改需要隐藏(仅限命令行,根据“”),或首先提交(如中所述)。

    只是为了添加到VonC编写的内容中

    每次我尝试点击“同步”按钮时,我都会看到下面的屏幕

    在阅读了他的建议后,我点击“OpenShell”并键入

    git stash
    
    它展示了这样的东西

    在此之后,我能够点击“同步”按钮,它能够成功地同步

    阅读VonC评论后添加

    但是,在成功地将该文件添加到repo之后,我注意到其他两个构建文件('BuildConfig.java'和'project.properties')没有显示在GitHub for Windows中。所以,在读了VonC的建议后,我输入了

    git stash pop
    
    在先前打开的shell中,这两个文件再次出现在GitHub for Windows上

    在听取GitHub支持部门的反馈后添加

    很遗憾,当您有未老化的更改或文件时,无法同步。但有一个解决办法:

  • 提交工作目录中的所有内容(使用提交消息“WIP”或“正在工作”的缩写)
  • 同步
  • 选择“WIP”提交并单击“回滚到此提交”按钮

  • 同步时,会进行本地提交,并将其放在从服务器获得的提交的末尾。

    谢谢。那么,这是否意味着我需要提交所有文件才能同步?@aLearner commit或stash(),但由于涉及到拉操作,Git需要一个干净的工作树才能实现同步。非常感谢!这确实奏效了。我会发布一个更详细的回复来补充你上面写的内容。很好的反馈和插图+1不要忘记使用
    git stash pop
    将正在进行的工作重新应用到(现在已同步)的工作树上。考虑将代码> >核心。AutoLoF 为false()。谢谢。我一定会更新上面的答案,以反映
    stash pop
    的使用。我还将研究
    core.autocrlf
    。因此我尝试研究
    core.autocrlf
    ,但我不确定我是否完全理解如何做到这一点:-/这样做的目的是确保git不会改变任何东西(根据换行符样式),除非您显式地(例如,在中)配置git来这样做:。所以:
    git config--global auto.corecrlf false
    Cool。感谢您提供的信息和有用的参考资料。这真的很有帮助。