Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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
Ruby on rails 是否有一种方法可以查看提交给本地GitHub分支的更改,而无需将其推送到主分支?_Ruby On Rails_Web Applications_Github_Heroku - Fatal编程技术网

Ruby on rails 是否有一种方法可以查看提交给本地GitHub分支的更改,而无需将其推送到主分支?

Ruby on rails 是否有一种方法可以查看提交给本地GitHub分支的更改,而无需将其推送到主分支?,ruby-on-rails,web-applications,github,heroku,Ruby On Rails,Web Applications,Github,Heroku,我还在想GitHub和Heroku的事,所以请耐心点。:) 比如说,我在xyz.com上有一个web应用程序。我现在做的是对一些文件进行一些代码/UI更改,提交这些文件,将它们推送到主分支,然后刷新url以查看这些更改 我认为这显然是一种错误的方法,但我不知道如何测试对代码所做的更改,而不必将它们推到主分支上。我怎么能这样做呢?我不太了解您问题的完整版本中的情况(请参阅我的评论,以及为什么您不能在本地测试?),但要回答标题中的问题,您可以通过运行以下命令来查看您的主控程序与GitHub上的版本之

我还在想GitHub和Heroku的事,所以请耐心点。:)

比如说,我在xyz.com上有一个web应用程序。我现在做的是对一些文件进行一些代码/UI更改,提交这些文件,将它们推送到主分支,然后刷新url以查看这些更改


我认为这显然是一种错误的方法,但我不知道如何测试对代码所做的更改,而不必将它们推到主分支上。我怎么能这样做呢?

我不太了解您问题的完整版本中的情况(请参阅我的评论,以及为什么您不能在本地测试?),但要回答标题中的问题,您可以通过运行以下命令来查看您的主控程序与GitHub上的版本之间的差异:

git fetch github
git diff github/master master
(假设引用您的GitHub存储库的远程设备称为
GitHub
——在您的情况下,它很可能是
origin
。您可以使用
git remote-v
查看所有远程设备)


进一步解释一下,当您运行
git-fetch-github
时,git将更新所有所谓的“远程跟踪分支”——在大多数情况下,这些分支看起来像
origin/whatever
github/experiment
,等等。这些分支的状态类似于缓存,只有当您运行
git-fetch
或成功地
git-push
到远程存储库上的该分支时,它们才会更新。因此,一旦您这样做以确保
github/master
是该分支在github上的最新快照,您就可以使用
git diff
将其与本地
master
分支进行比较。首先:您不推送到主分支,而是推送到远程repo。你可能应该仔细阅读你的文章


第二:这不是一个好的工作流,首先您应该提交您的更改,然后在本地测试它们。完成测试后,您就可以将提交推送到远程回购了。

为了澄清,我猜您是先推到github,然后在xyz.com上从github退出?(或者你是直接推到xyz.com?这不是一个好主意…)哦,没关系-我刚刚发现了heroku标签,所以我猜你是直接推到那里部署。icc,你的建议通常是正确的,但在开发利用heroku提供的附加组件的基于heroku的复杂应用程序时并不总是实用的。在更复杂的情况下,创建两个Heroku应用程序,即production和staging,并设置两个远程git存储库。您可以推送到暂存应用程序并调试更改,然后推送到生产环境,最后将标记的分支推送到GitHub。