Rstudio 将 Git 命令变灰并且(无分支)

Rstudio greyed out Git commands and (No branch)

我目前正在努力让 Rstudio 与我的 git 存储库一起工作。当我设置一个新项目并分配 git 存储库时,分支设置在 Master 上,并且提交、拉取和推送按钮都处于活动状态。一切正常。然后,在某个时候分支切换为(无分支)并且提交、拉取和推送按钮变灰(如下所示)。我做的每一个 git 项目都会发生这种情况。一开始有效,然后变灰。

我仍然可以使用来自 Shell 的 git 命令,但是 GUI 界面不工作。

我花了一些时间浏览客户支持论坛并用谷歌搜索问题。我找到的一个站点 (https://www.r-bloggers.com/things-i-forget-pushpull-greyed-out-in-rstudio/) 指出配置列表存在问题。但是,当我做git config --list时,我发现我在配置的底部做了have branch.master.remote=originbranch.master.merge=refs/heads/master

我也试过 git push -u origin master,但也没用。

我每天都使用 RStudio 和 github,如果 GUI 界面再次正常工作,我会很高兴。

如果有人能帮我解决这个问题,我将不胜感激。

编辑:我正在使用 OSX 10.9 Mavericks 和 Rstudio 版本 0.99.903。

Then, at some point the branch is switched to (No Branch) and the commit, pull, and push buttons are greyed out (shown below).

这是典型的分离 HEAD 分支:参见“Why did my Git repo enter a detached HEAD state?”。

返回命令行并检查您的 git status

您可以easily recover from this通过分行结帐。
或者通过强制分支到您当前的分离提交

git branch -f branch-name HEAD
git checkout branch-name

然后切换回 RStudio:所有选项应该再次可用。


作为:

Tt turns out to be an RSA key issue.
The wrong key was in the Rstudio Config, which explains how Shell would work but not the Rstudio interface.

我已经在本地配置并使用 CLI 推送和拉取 from/to 的 repo 遇到了类似的问题(尽管我没有从分支分离的问题)并且我解决了它通过执行以下操作:

  1. 打开您的控制台并导航到您的存储库
  2. 做出一些承诺
  3. 使用-u(即--set-upstream)标志进行推送,例如:git push origin master -u
  4. 打开 Rstudio(如果在执行上一步时它处于打开状态,则重新启动它),您会看到推拉图标不再灰显。

我只是想提供更新,以防将来有人遇到类似问题。虽然之前提供的答案导致了另一个临时修复,但我最终不得不擦除硬盘驱动器;重新安装操作系统;重新安装 git、R、RStudio,并重新连接到我的 Github 帐户,然后它才能持续工作。

我的解决方案可能有点矫枉过正,但从那以后我就再也没有遇到过问题。

我今天遇到了同样的问题,发现了这个 post。我将分享我是如何解决它的:

在终端 (Git) 上键入以下内容: $ git config --global user.name (它应该 return 你的 Git 中心用户名)

如果用户名不正确,请输入 $ git config --global user.name "correct_username"

然后输入 $ git config --global user.email (它应该 return 与您的 GitHub 帐户关联的电子邮件)

我在我的电子邮件中发现了一个拼写错误并通过键入来修复它 $ git config --global user.email "correct_email"

然后我添加了原点(这是你从 GitHub 得到的) $ git remote add origin https://github.com/my_username/my_repository.git

然后我设置分支,最常用的是main和master,在我的例子中是main $ git branch -M main

然后我从终端推送 $ git push -u origin main

之后,我的拉按钮和按钮被激活。

我希望这可以为其他人节省一些时间。