我在游泳池GIT风格中生气 - ftp'​​d文件到repo现在GIT不同步

时间:2013-06-03 22:22:53

标签: git github

好的,这就是场景:

  • 在github上托管代码 - 推送到origin
  • 对于部署 - 推送到deploy (bluehost上的裸仓库,有一个钩子可以推送到www文件夹,供所有人查看网站)

因此,工作流程就像这样,因为我在两个不同的地方工作:

  • 从github 获取最新信息(在不同地点进行的更改并在前一天晚上推送)
  • 在本地工作并提交更改
  • 推送至origin (github)
  • 一切都很好之后需要在线使用这个东西,所以主人被推到deploy (bluehost)

还在我身边吗?

这已经有一段时间了,对我而言,这是 awesome

然后我在泳池里生气

我不小心将文件ftp到bluehost (启用了sublime sftp),现在当我尝试将deploy推送到最新且最好的bluehost时,我得到的错误一切都是最新的如果我做了一些更改,请执行一个新的commit然后推送,我得到错误这样,这样的文件将被合并,提交或存储覆盖...

本地回购和git回购都在检查中,这是一个混乱的蓝色主机。

请帮我解决这个问题。我试过谷歌搜索这里并阅读其他帖子,但一切似乎都没有解决我的问题。我试过push --force,但无济于事。

任何想法都会很棒。或者我应该删除整个bluehost文件夹并重新使用全新的git repo来重新获得copacetic?

修改 从git出来的

C:\xampp\htdocs\www\testingboard>git status
# On branch master
nothing to commit, working directory clean

C:\xampp\htdocs\www\testingboard>git push deploy master
danferth@danferth.com's password:
Everything up-to-date

对单个文件进行编辑(index.php

C:\xampp\htdocs\www\testingboard>git add -A

C:\xampp\htdocs\www\testingboard>git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   index.php
#

提交更改为index.php

C:\xampp\htdocs\www\testingboard>git commit -m "added mobile variable to index.p
hp"
[master e0be437] added mobile bariable to index.php
1 file changed, 5 insertions(+)

推送到github(工作)

C:\xampp\htdocs\www\testingboard>git push origin master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 353 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
To https://github.com/danferth/breadBoard.git
9e9f3c1..e0be437  master -> master

推送部署(注意ftp的其他文件也在那里)

C:\xampp\htdocs\www\testingboard>git push deploy master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 353 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: From /home4/danferth/git/breadboard
remote:    9e9f3c1..e0be437  master     -> origin/master
remote: error: Your local changes to the following files would be overwritten by
merge:
remote:         .sass-cache/6329d896b0dd00f287815f75641600307d9f0023/css_didI.sc
ssc
remote:         _START/pageTitle.php
remote:         assets/custom_css/css_didI.css
remote:         assets/custom_css/css_didI.scss
remote:         content/p_didI.php
remote:         didI.php
remote:         index.php
remote:         template.php
remote: Please, commit your changes or stash them before you can merge.
remote: Aborting
remote: Updating 0dc9e3d..e0be437
To danferth@danferth.com:~/git/breadboard.git
9e9f3c1..e0be437  master -> master

C:\xampp\htdocs\www\testingboard>

1 个答案:

答案 0 :(得分:1)

在部署服务器上,使用shell访问并转到www文件夹(git repo checkout)。然后使用git status获取不同步的文件列表。然后使用git checkout -- <paths>从git repo恢复这些文件,以便它们重新同步。然后,您应该可以在服务器上git pull,或只是git push deploy您当地的更改。

由于您使用的是提交后挂钩,因此更改已存在于部署服务器上的裸存储库中,但尚未存在于已检出的www位置。因此git pull应该让您的网络服务器保持最新状态。