如何将未同步的提交推送到GitHub?

时间:2014-03-30 17:21:25

标签: github

我在我的Visual Studio 2013副本中添加了一个GitHub源代码控制工具,当我右键单击解决方案并进行提交时,它会在本地创建提交。当我尝试将提交与服务器同步时,同步按钮显示为灰色。

我的问题是如何设置它或我采取了哪些步骤以便将提交推送到服务器?

enter image description here

4 个答案:

答案 0 :(得分:44)

看起来您没有为此分支配置上游远程/分支。 Visual Studio的操作就像“push.default”配置设置为“upstream”一样。

如果您转到分支页面,此分支应列在“未发布”分支部分下。在该页面中,您可以通过右键单击未发布的分支并在结果上下文菜单中选择发布来选择“发布”此分支。这会将分支推送到原始远程(具有与本地分支同名的分支)并设置此分支的上游跟踪信息。从那时起,您可以从Unsynced Commits页面推送和获取。

以下是您需要发布未发布分支的屏幕截图:

Publish an unpublished branch

答案 1 :(得分:4)

您需要在当地的git仓库中将在线GitHub仓库添加为远程。

在命令行中,git remote add origin <urL>;我不知道VS git UI是否暴露了这个。

答案 2 :(得分:2)

我们使用Atlassian Stash但最初发现Visual Studio UI有点令人困惑。使用仅用户界面对我们有用的序列如下:

  1. 首先,您必须通过团队资源管理器在Git全局设置中添加“用户名”和电子邮件地址&gt;主页&gt; Git&gt; Git设置
  2. 在“解决方案资源管理器”选项卡上,右键单击解决方案并“将解决方案添加到源代码管理”,然后选择Git。
  3. 在“团队资源管理器”标签上,点击您刚创建的回购并转到分支机构
  4. 选择主分支,右键单击并选择“发布” - 您将被要求输入远程URL,在您输入后,您将获得用户名/密码提示(对于远程服务器,即GitHub,Stash,等等。)
    • 所有这一切都是git push origin master,但微软选择通过给它另一个名字来让它变得混乱。
  5. 等待“发布”完成(UI中将显示文件传输状态)
  6. 完成后,转到提交标签,您会看到推送/拉/取等所有选项都可用
  7. 注意:如果您在本地创建另一个分支,则必须在远程知道它之前推送,“发布”该分支。

    最后注意事项: Visual Studio不会在遥控器上为您创建项目和存储库。您必须确保在将分支推送到远程之前在远程设置了回购。

    奇怪的问题:我们发现,如果您尝试推送到分支但失败(由于错误的URL或权限问题),我们必须返回命令提示符“修复” repo / branch的远程配置。这是使用标准的git命令:

    git remote add origin https://myuser@stash.mycompany.com/scm/myproject/myrepo.git

答案 3 :(得分:0)

在@ jamill的答案中发布分支后,您可能会遇到此问题。

在团队资源管理器中,我能够发布分支,但后来我什么也做不了。如图所示,拉动和推动变灰:

enter image description here

所以我做了动作&gt;打开命令提示符。然后输入:

git push origin My_Branch_Name

执行此操作后,我可以在遥控器中看到分支和我的提交。 (Github或者你的情况)。同样在运行命令时,输出说,

remote: Create pull request for My_Branch_Name: 

如果要保留此分支并将其合并到master中,则可以在远程上创建拉取请求。否则在我的情况下我想放弃分支。你不需要做任何事情。