所以,我一直在努力让我的分期工作一整天都在工作,但我错过了一些东西。
这是一系列事件:
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次我希望在我的登台服务器上看到的更改。
我怎样才能完成这项工作?
答案 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
来完成,但这确实会让事情变得更加复杂。
您有两种选择:要么只使用一个主分支,要么使用其他分段分支。
merge
将分段转移到主分支,并推送现在包含所有分段更改的主数据。