对Visual Studio .csproj文件的Git更改不会反映为对原点的更改。为什么?

时间:2017-03-28 20:25:50

标签: git visual-studio

  1. 在主分支上,我执行了git pull以获取对主人的最新更改
  2. 然后我做了git checkout -b new_branch
  3. 在这个分支上,我删除了几行到.csproj文件
  4. 差异显示正确的变化,即
  5. zach@DESKTOP...:<path>$ git diff master,显示:

    diff --git a/<path>.csproj
    index 58a5da4..8062eb5 100644
    --- a/<path>.csproj
    +++ b/<path>.csproj
    @@ -79,9 +79,6 @@
         <None Include="App.config">
           <SubType>Designer</SubType>
         </None>
    -    <None Include="env-config.json">
    -      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    -    </None>
       </ItemGroup>
       <ItemGroup>
         <ProjectReference Include="<path>.csproj">
    
    1. 然后我跑了git add .
    2. 然后我跑了git commit -m "new changes added"
    3. 然后我跑了git push
    4. 此时我预计会提示--set-upstream路径。但相反,我收到了一条消息,说所有内容都是最新的。

      查看Bitbucket上的源代码,既没有最近提交更改的新分支,也没有出现主分支中的更改本身。

      为什么会这样?

      我应该注意到我正在使用bash的Windows 10实现(即虚拟化的Ubuntu 14.04机器),但对常规源代码的更改似乎工作正常。

      我也在Bootcamp的Apple上运行Windows 10 Home。

2 个答案:

答案 0 :(得分:1)

  

当命令行没有指定推送的位置时    参数,分支。*。当前的远程配置   分支是          咨询确定在哪里推。如果缺少配置,则默认为origin。

     

当命令行没有指定要使用...参数或--all, - mirror, - batgs选项时,该命令   找到默认值           通过咨询远程。*。推送配置,如果找不到,请尊重push.default配置来决定推送什么   (见git-          config(1)表示push.default的含义。

     

如果命令行和配置都没有指定要推送的内容,则使用默认行为,该行为对应于   简单的价值          push.default:当前分支被推送到相应的上游分支,但作为安全措施,如果   上游分支          与本地名称不同。

这意味着,当新创建的分支尚未存在并且是远程的当前分支时,the push is aborted

答案 1 :(得分:0)

您是否验证过您的gitignore文件以确保它不会忽略csproj文件?

如果它在那里你想删除它,csproj文件肯定会去存储库。