Konflikt na github jak rozwiązać?

0

Cześć, aktualnie robię projekt zespołowy i wykonując swojego taska, ktoś z zespołu dokończył encję, które dla mojej encji miała być tylko zaślepką, no i zrodził się konflikt. Będąc na gałęzi main zrobiłem git pull i wszedłem na swoją gałąź. Będąc na swojej gałęzi wpisałem git rebase main no i pojawiło mi się to:
Encja Cart:

import com.sun.istack.NotNull;
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.persistence.*;
<<<<<<< HEAD
=======
import java.math.BigDecimal;
>>>>>>> 4996893 (JDP211201-14 cart entity)
import java.util.ArrayList;
import java.util.List;

@Entity
@Getter
@NoArgsConstructor
@Table(name = "CARTS")
public class Cart {

    @Id
    @GeneratedValue
    @NotNull
    @Column(name = "CART_ID",unique = true)
    private Long id;

    @NotNull
    @Column(name = "TOTAL_PRICE")
    private BigDecimal totalprice;

    @ManyToOne(targetEntity = User.class, cascade = CascadeType.ALL)
    @JoinColumn(name = "user_id")
    private User user;

<<<<<<< HEAD
    @ManyToOne
    @JoinColumn(name = "order_id")
    private Order order;

    @OneToMany(
            targetEntity = Item.class,
            mappedBy = "cart",
            cascade = CascadeType.ALL,
            fetch = FetchType.LAZY
    )
    private List<Item> items = new ArrayList<>();
=======
    @OneToMany(targetEntity = Item.class, mappedBy = "cart", cascade = CascadeType.ALL)
    private List<Item> items;

    @OneToOne(cascade = CascadeType.ALL)
    private Order order;

    public Cart(BigDecimal totalPrice) {
        this.totalprice = totalPrice;
        this.items = new ArrayList();
    }
>>>>>>> 4996893 (JDP211201-14 cart entity)
}

Encja Order:

<<<<<<< HEAD
import com.kodilla.ecommercee.GenericEntity;
import lombok.AllArgsConstructor;
=======
import com.sun.istack.NotNull;
>>>>>>> 4996893 (JDP211201-14 cart entity)
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.persistence.*;
<<<<<<< HEAD
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;

@Getter
@AllArgsConstructor
@NoArgsConstructor
@Entity(name = "orders")
public class Order extends GenericEntity {

    @Column(name = "orderDate")
    private LocalDate orderDate;

    @Column(name = "deliveryDate")
    private LocalDate deliveryDate;

    @Column(name = "finalCost")
    private BigDecimal finalCost;

    @Column(name = "status")
    private String status;

    @ManyToOne
    @JoinColumn(name = "USER_ID")
    private User user;

    @OneToMany(
            targetEntity = Item.class,
            mappedBy = "order",
            cascade = CascadeType.ALL,
            fetch = FetchType.LAZY
    )
    private List<Item> items = new ArrayList<>();

    @OneToMany(
            targetEntity = Cart.class,
            mappedBy = "order",
            cascade = CascadeType.PERSIST,
            fetch = FetchType.LAZY
    )
    private Set<Cart> carts;

=======

@Entity
@Getter
@NoArgsConstructor
@Table(name = "ORDERS")
public class Order {

    @Id
    @GeneratedValue
    @NotNull
    @Column(name = "ORDER_ID", unique = true)
    private Long id;

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "CART_ID")
    private Cart cart;
>>>>>>> 4996893 (JDP211201-14 cart entity)
}

Encja Item:


<<<<<<< HEAD
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.math.BigDecimal;

@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name="ITEMS")
=======
import com.sun.istack.NotNull;
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.persistence.*;

@Entity
@Getter
@NoArgsConstructor
@Table(name = "ITEMS")
>>>>>>> 4996893 (JDP211201-14 cart entity)
public class Item {

    @Id
    @GeneratedValue
<<<<<<< HEAD
    @Column(name="id", nullable = false, unique = true)
    private Long id;

    @Column(name="quantity", nullable = false)
    private int quantity;

    @Column(name="price", nullable = false)
    private BigDecimal price;

    @ManyToOne
    @JoinColumn(name="order_id")
    private Order order;

    @ManyToOne
    @JoinColumn(name="cart_id")
    private Cart cart;

=======
    @NotNull
    @Column(name = "ITEM_ID", unique = true)
    private Long id;

    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "CART_ID")
    private Cart cart;
>>>>>>> 4996893 (JDP211201-14 cart entity)
}

Jak rozumiem, żeby pozbyć się konfliktu trzeba usunąć z każdych tych klas kod poniżej ========= i powyżej >>>>>>>>' jak również <<<<<<HEAD`, a co potem?

1

zrób to w jakimś IDE które ci da normalny podgląd zmian w widoku 3-way a nie jakieś ręczne zmienianie.
potem normalnie dodajesz pllk, commit i push

0

@obscurity: No to właśnie się staram zrobić w IntelliJ.
EDIT: wpisałem git rebase --abort zniknęły mi konflikty. Wpisać git marge main?

1
Ukulelemelelele napisał(a):

@obscurity: No to właśnie się staram zrobić w IntelliJ.

EDIT: wpisałem git rebase --abort zniknęły mi konflikty. Wpisać git marge main?

jak w intelliJ pullujesz albo mergujesz kod i pokazuje Ci się informacja, że są konflikty to powinieneś mieć przycisk 'resolve conflicts'. Kliknij i wszystko będzie jasne :)

0

@Inari: czyli będąc na swoim branchu mam wpisać git marge main? Bo jak tak robię to pojawiają mi się konflikty w klasach.

0

Będąc w branchu main powinieneś odpalić

git pull --rebase

i rozwiązać konflikty, najlepiej używając jakiegoś IDE. Potem robisz git rebase --continue i bangla.

Konfliktów nie unikniesz, musisz nauczyć się z nimi radzić - to cześć Twojej pracy ;)

2

Masz w zasadzie 2 możliwości:

  1. próbować randomowych komend, zaletą jest szybkość tej metody, zaś wadą randomowe rezultaty
  2. zrozumieć skąd się wziął konflikt i jak sobie radzić z ich rozwiązywaniem - narzędzia pokazują Ci, że jest konflikt i gdzi jest, ale nie wiedzą jak go rozwiązać, to Twoja rola.

Naucz się Gita -> https://learngitbranching.js.org/ , https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
Poznaj swoje IDE i to jak wspiera rozwiązywanie konfliktów, jeśli intellij -> https://www.jetbrains.com/help/idea/resolving-conflicts.html#distributed-version-control-systems

Jak nie IDE, to może inny tool ułatwiający zrozumienie gdzie masz różnice i umożliwający rozwiązanie konfliktów -> np. https://winmerge.org

2

@Ukulelemelelele: może na początek zamiast komend to klikaj wszystko w intelliJ, bedzie łatwiej

2

Masz intellij więc czemu robisz to z konsoli jak zwierze? Robisz fetch, patrzysz na listę commitów w logu, wybierasz do którego miejsca chcesz się mergować/rebasować i robisz merge into current albo rebase current onto selected i intellij pokaże ci ładne okienko z 3-way merge gdzie klikniesz 3 razy i będzie z głowy.

0

@Shalom: Tak mi mentor pokazywał, ale średnio mi szło tym sposobem, więc zrobiłem to za pomocą git -> resolve conflict i poszło. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1