Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
Git 如何更新我的功能分支提交,使其位于更新的主分支之上?_Git_Git Merge_Rebase_Git Rebase - Fatal编程技术网

Git 如何更新我的功能分支提交,使其位于更新的主分支之上?

Git 如何更新我的功能分支提交,使其位于更新的主分支之上?,git,git-merge,rebase,git-rebase,Git,Git Merge,Rebase,Git Rebase,大约一个月前我创建了一个分支。从那时起,主分支已进行了大量更新,而功能分支不包括这些更新。我希望我的提交位于更新的主分支之上,我只希望发布我的提交。我如何做到这一点(或者这是否可能) 更多信息: 我的本地分支提交已推送到远程分支,但未推送到主分支 我尝试了git-rebase,但随后我收到一条消息,说我的分支已经分叉,“并且分别有X和Y个不同的提交。” 我不确定git push-f是否能解决我的问题。我不希望我的远程分支记录在主分支上所做的更改。我只希望我的远程/本地分支“位于最新版本的mast

大约一个月前我创建了一个分支。从那时起,主分支已进行了大量更新,而功能分支不包括这些更新。我希望我的提交位于更新的主分支之上,我只希望发布我的提交。我如何做到这一点(或者这是否可能)

更多信息: 我的本地分支提交已推送到远程分支,但未推送到主分支

我尝试了
git-rebase
,但随后我收到一条消息,说我的分支已经分叉,“并且分别有X和Y个不同的提交。”

我不确定git push-f是否能解决我的问题。我不希望我的远程分支记录在主分支上所做的更改。我只希望我的远程/本地分支“位于最新版本的master之上”,并且仍然只显示我的提交


我不想将master“合并”到我的分支中,因为1000多个提交将使我的提交黯然失色,我只希望我的提交能够被我的同行轻松审查。

根据您的描述,我非常确定
git rebase
git push-f
是您想要的。
rebase
命令在更新的
master
分支上重放更改。这张照片(来自)很好地反映了发生的情况:

重定基址后,您会收到“have X and Y different commits each”消息,因为重定基址会导致一系列新的提交,因此本地分支的历史记录不再与远程分支的历史记录匹配

如果您没有与其他人共享您的功能分支,那么使用
git push-f
不会有问题。这将简单地重写远程功能分支以匹配本地功能分支


如果其他人签出了他们的功能分支,他们将需要重新同步他们的本地工作副本,可能需要运行
git fetch
,然后执行
git reset--hard your/feature/branch

这就是我用Master重新设置分支“davesBranch”基础的方法

  • 切换到本地主机并键入“git pull
  • 切换回“davesBranch”并键入“git rebase master
  • 完成后,通过键入“git status”检查冲突
  • 如果未合并任何文件(如文本颜色为红色),则这些文件存在冲突,需要您手动修复。修复后,键入“git add.
  • 然后键入“git-rebase--continue
  • 重复步骤3-5,直到没有冲突。(您将看到类似于“您的分支和'origin/davesbrack'已经分开了”)。现在可以键入“git-push-origin-davesBranch--force

  • “新主分支”实际上是指一个新分支,还是说主分支有功能分支没有的更新?我的意思是主分支已经进行了大量更新,而功能分支没有。我更新了你问题的措辞以反映这一点。我认为,如果将更改引入到功能分支中,没有一种好的方法可以从主分支隐藏这些更改,但是您应该能够在日志中只显示您的更改。看看有什么方法可以做到这一点。