Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 - Fatal编程技术网

Git 与其他部门的主管保持联系

Git 与其他部门的主管保持联系,git,Git,在一个积极开发的项目中,大师有一个名为FollowingModel的模型 我从master分支出来,在我的分支上工作了几天——创建使用以下模型的方法。在我进行PR时,另一个分支合并到master中,它将Following模型更改为Following。我可以在没有合并冲突的情况下合并到主应用程序中,但是如果我这样做,应用程序将崩溃——因为我的方法将调用一个名称已更改的模型 在这种情况下,正确的方法是什么?在一个大型项目中,有很多活动部件,如何处理这些问题?在提交PR之前,您需要在新的主文件的基础上

在一个积极开发的项目中,大师有一个名为
FollowingModel
的模型

我从master分支出来,在我的分支上工作了几天——创建使用
以下模型的方法。在我进行PR时,另一个分支合并到master中,它将
Following模型
更改为
Following
。我可以在没有合并冲突的情况下合并到主应用程序中,但是如果我这样做,应用程序将崩溃——因为我的方法将调用一个名称已更改的模型


在这种情况下,正确的方法是什么?在一个大型项目中,有很多活动部件,如何处理这些问题?

在提交PR之前,您需要在新的
主文件
的基础上重新设置本地分支机构的基础

  • 从“
    上游
    ”(远程引用原始回购协议)获取
  • 上游/主机
    合并到
    主机
    ,以更新您自己的
    主机
  • master
    上重新设置分支的基础,并强制推送(并根据
    master
    使用的内容调整方法名称)
维护人员的目标仍然是在收到您的PR时,能够在其
master
分支上快速推进您的分支

如果您直接推动原始回购,则:

  • 这不是“经典”公关。
    但“”确实提到:
您知道可以在同一存储库中的分支之间使用拉取请求吗?
使用拉取请求不需要fork存储库。
在GitHub内部,我们几乎总是在分支之间使用Pull请求

  • 顺序为:

    git checkout master
    git pull origin master
    git checkout featureBranch
    git rebase master
    # fix bugs
    git push --force origin newBranch
    

但这假设你是唯一一个在
newBranch
工作的人(或者这是
newBranch
的第一次推广)。如果您多次这样做,
newBranch
的历史记录在每次强制推送时都会发生变化。

在合并回主机之前,您通常会做的事情是在主机上重新设置基址。在这种情况下,这就是您应该做的,要么重新设置主节点的基址,要么将主节点合并回您的分支。之后,您的分支中有了新的主更改,可以修复出现的所有问题。在修复了所有bug之后,您可以合并到master中。

因此,i)在master上重新设置feature分支的基础,修复bug并
git merge
,将master分支推到远程repo?我应该把它推到哪里,推到远程回购上的一个新分支?ii)将主分支合并为功能分支,修复错误,将功能分支推送到远程回购。这不会导致git提交的重复,并导致我在分支中有与我的功能无关的提交吗?两种方式都可以。无论是重新基址还是合并,都不重要,重要的是,您的分支中的master有了更改。不确定最后一句话的意思是什么,但是是的,合并时会有一个合并提交,重新设置基址时不会有,但重新设置基址会在功能分支上重新写入整个分支历史。在功能分支上重新设置主分支的基址不是一个更好的主意吗?这样,我将从主分支提交,我可以通过重定基址重写它们的历史,并将它们推到远程REST上的同一分支是的,这就是我的实际意思,但我称之为“在主分支上重定基址功能分支”,而您称之为“在功能上重定基址主分支”,不确定哪一个是正确的。最后,您应该有一个功能分支,它看起来像是直接从主分支分支出来的,而不是主历史记录中的提交;git checkout featureBranch;git合并源/主
,修复bug,
git push origin featureBranch
?@DarshanChaudhary否:origin是您的fork,它不反映原始回购的最新版本。添加一个远程“上游”,url指向原始回购协议
git remote add upstream/url/to/original/repo
(my
Originary
是my
upstream
,我正在推送到另一个分支上的原始repo,该分支在代码审阅后合并到
master
)。我知道你的建议是-
git checkout master;git拉源主控;git checkout featureBranch;git-rebase-master
,修复bug,
git push origin newBranch
?@DarshanChaudhary在这种情况下,是的,但那不是“PR”。@DarshanChaudhary是真的,我忘了。我对答案进行了编辑,以指出您可以通过同一回购协议进行PR(无需分叉)