一切都是最新的(一切都不是)

时间:2013-08-16 19:41:57

标签: git github

所以,我一直在努力让我的分期工作一整天都在工作,但我错过了一些东西。

这是一系列事件:

git branch 
develop
*master
staging

进行一些更改

git checkout staging
M   app/views/comments/index.html.erb
M   app/views/devise/registrations/new.html.erb
M   app/views/devise/sessions/new.html.erb
M   app/views/layouts/application.html.erb
M   app/views/songs/contact.html.erb
M   app/views/songs/faq.html.erb
M   app/views/songs/index.html.erb
M   app/views/songs/new.html.erb
M   app/views/songs/new_songs.html.erb
Switched to branch 'staging'

git gui (git commit and then git push staging)
git checkout master
git push staging master (deployment)

Everything up-to-date

一切都不是最新的,我只是做了10次我希望在我的登台服务器上看到的更改。

我怎样才能完成这项工作?

2 个答案:

答案 0 :(得分:1)

您的工作流程中缺少一个关键步骤:在提交之前添加更改。

在使用git commit之前,运行git add -A将工作目录中的所有文件添加到git仓库。或者,您可以使用git add <path-to-file>添加特定文件,或使用git commit -a将所有修改添加到您的git仓库。请注意,git commit -a不会添加新文件,只会添加您对预先存在的文件所做的更改。

如果您想查看自己的位置,请键入git status。红色文件已更改,未分级(“暂存”更改等同于“添加”),同时添加了绿色文件。如果git status说“工作目录清理”,那么自上次提交以来,您没有进行任何更改。

答案 1 :(得分:0)

请务必经常使用git status(或git status --short)。 每当它显示变化时,您必须决定是否要保留它们。然后你提交或丢弃它们。 - 之后git status再次开心。 设置有意义的prompt通常非常有帮助。

如果没有干净的git status,请勿更改分支。 (它只能起作用,因为两个分支几乎相同。)

主要问题似乎是你的推动。 git push要求您指定一个遥控器(通常称为origin)。如果你真的想将本地登台分支的内容推送到远程主服务器,你可以通过git push origin staging:master来完成,但这确实会让事情变得更加复杂。

您有两种选择:要么只使用一个主分支,要么使用其他分段分支。

  1. 仅使用master,您可以从远程主服务器中提取更改,远程主服务器创建(或更新)本地主服务器。然后在本地主服务器上执行提交,完成后将本地主服务器推回到应该部署它的远程主服务器。
  2. 使用单独的登台分支,您可以在登台分支上执行更改,将本地登台分支推送到远程登台分支,您可以在其中部署它是某种临时区域。如果您对结果感到满意,则merge将分段转移到主分支,并推送现在包含所有分段更改的主数据。