繁体   English   中英

如何在GIT上将更改从开发分支上传到远程分支?

[英]How to upload changes from development branch to remote branch on GIT?

我正在使用cakephp网站之一,我使用git作为版本控制器。 我有两种不同的分支:

1)发展
2)ui

当我尝试使用此命令将我的最新更改从开发推送到ui分支时: git push web ui ,将显示以下消息。

Counting objects: 43, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (28/28), done.
Writing objects: 100% (29/29), 66.67 KiB | 0 bytes/s, done.
Total 29 (delta 15), reused 0 (delta 0)
remote: Already on 'ui'
remote: ----------------------------------------------------------------
remote: Deployed ui to Leo
remote: ----------------------------------------------------------------
To ssh://git@wasteaccountant.com/srv/git/wa.git
   bdc7d80..01e85ea  ui ->ui

但是当我在git服务器上检查ui分支时,该特定分支上没有更新。 但我可以看到我在浏览器中检查时应用的更改。

更新的问题:

以下是我以前运行的命令的步骤:

1)git状态

2)git checkout开发//开发分支的名称

3)git add

4)git commit

5)git push //仅在开发分支上推送开发更改

6)git checkout ui // ui branch的名字

7)git merge开发

8)git push web ui //推动ui分支的变化

无论我在开发分支上推动什么,我都可以在git存储库上看到所有更改,但是ui分支没有运气。

注意:如果我使用git push -f命令它将正常工作。 对我来说很奇怪!

-------------------------------------------------- ------------------------------------------------

任何人都可以建议我做什么? 或者我在命令中犯了错误?

谢谢!

当我尝试使用此命令将我的最新更改从开发推送到ui branch时:

git push web ui

将分支推送到另一个分支将是:

git push web development:ui

第一次推动将:

  • 推动提交,和
  • 使用在本地ui分支上完成的新提交更新远程ui提交(这意味着0提交,因为您已经在development分支上完成了提交)

但是,在你的情况下,你将ui分支更新为dev devits,然后将dev转换为ui ,所以它应该可行。

但是:如果它仅在git push -f之后起作用,那意味着第一次推送应该因为“非快进推送”而失败。
push -f之后执行的后续推送(在从devui另一次合并之后)应该起作用。


现在它的工作没有任何其他非常困难的命令,但只是与git推。 再次感到奇怪! 你知道原因吗?

如果你的本地和repo提交共享相同的历史记录(在git push -f之后应该是这种情况), 那么任何后续推送都将添加到该历史记录中(不需要强制它)。
所以这将有效:

git push origin ui

实际上,如果你设置了一个上游分支 (通过git push -u origin ui ,用git config branch.ui.remote检查它),那么这将有效:

git push

(尽管检查你的推送政策

尝试在服务器上执行git reset --hard 当您推送到远程非裸仓库时,分支不会被检查。 当你执行git reset --hard ,它将删除它在工作目录中看到的所有更改,有效地前进到上次提交。 您可以将git reset --hard到服务器上的post-fetch挂钩。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM