在git中合并两个有冲突的分支时,我如何明确提及要应用哪个分支?

时间:2019-06-16 17:04:19

标签: git github rebase merge-conflict-resolution git-merge-conflict

我在git中有两个分支。母版和功能。

public class myAdapert extends RecyclerView.Adapter<myAdapert.myViewHolder> {
ArrayList<Model_class> modelClassArrayList;

public myAdapert(ArrayList<Model_class> modelClassArrayList) {
    this.modelClassArrayList = modelClassArrayList;
}

@NonNull
@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View customView = LayoutInflater.from(viewGroup.getContext())
            .inflate(R.layout.custom_row,viewGroup,false);
    myViewHolder myviewHolder = new myViewHolder(customView);
    return myviewHolder;
}

@Override
public void onBindViewHolder(@NonNull myViewHolder myViewHolder, int i) {
    Model_class model_class = modelClassArrayList.get(i);
    myViewHolder.author.setText(model_class.getAuthor());
    myViewHolder.title.setText(model_class.getTitle());
    myViewHolder.cost.setText(model_class.getCost());
    myViewHolder.quantity.setText(model_class.getQuantity());

}

@Override
public int getItemCount() {
    return modelClassArrayList.size();
}

public class myViewHolder extends RecyclerView.ViewHolder {
    TextView author,title;
    TextView cost,quantity;
    public myViewHolder(@NonNull View itemView) {
        super(itemView);
        author = itemView.findViewById(R.id.authortxt);
        title = itemView.findViewById(R.id.titleTxt);
        cost = itemView.findViewById(R.id.costTxt);
        quantity = itemView.findViewById(R.id.quantityTxt);
    }
}

我有一个文本文件,当它位于主分支头时包含O---O (master) \ O (feature)
同一文件位于功能分支头时包含Master

我想将功能分支重新建立基础。由于它们都具有冲突的更改,因此将存在基准冲突(或合并冲突)。

我想知道是否有一种方法可以明确地告诉git,我想在重新设置基准时从功能分支中的功能分支进行更改。

这是我尝试过的:

Image showing setup

Image showing error

我们可以清楚地看到要素分支文本被主分支文本覆盖。

预先感谢:)

1 个答案:

答案 0 :(得分:2)

如果要将feature分支重新设置到master分支上,并且在发生任何合并冲突的情况下,feature分支上的更改将覆盖master分支,则必须通过--strategy-option而不是theirs传递ours

当您在feature分支上签出,并想将master改写到feature上时, git rebase 的工作原理是重播{ feature分支顶部的{1}}分支。因此,发生合并冲突时,报告为我们的的一方是master分支,而的一方是工作分支,即{{1 }}分支。

摘自git rebase的文档:

  

Rebase合并通过在上游分支顶部重放工作分支中的每个提交来工作。因此,当发生合并冲突时,报告为我们方的那一面是到目前为止的基础系列,从上游开始,而他们方是工作分支。换句话说,双方交换。

因此,请尝试使用master,这将确保在合并冲突的情况下考虑考虑feature分支更改。