Ho un progetto che è stato avviato in TFS, quindi spostato in Git. Sfortunatamente, il tizio che l'ha spostato in Git ha appena controllato i file correnti invece di usare git-tfs. Sto cercando di ribattere i suoi nuovi commit in Git sopra i commit che ho preso da TFS usando git-tfs.Perché git mostra un conflitto tra due file aggiunti apparentemente identici?
Per fare ciò, sto semplicemente ribadendo i suoi commit in cima ai commit git-tfs. (Mi rendo conto che questo rovinerà le filiali Git remote, ma siamo una piccola squadra e andrà tutto bene. Ho anche provato il cherry-picking, ma ho avuto lo stesso problema.)
Il problema I ' sto funzionando in è una serie di conflitti che assomigliano a questo:
<<<<<<< HEAD
namespace OurNiftyProject
{
public enum CardType
{
Visa = 0,
MasterCard = 1
}
}
||||||| merged common ancestors
=======
namespace OurNiftyProject
{
public enum CardType
{
Visa = 0,
MasterCard = 1
}
}
>>>>>>> Add a bunch of stuff.
sembra che questo è un conflitto tra un commit dal lato TFS che ha aggiunto questi file, e un commit sul lato Git che li aggiunto (come il repository Git è iniziato vuoto).
La cosa logica sarebbe saltare questo commit, forse, ma ci sono alcuni file in esso (diciamo dieci su un paio di centinaia) che sono nuovi. Quelli non causano conflitti, ovviamente.
Perché Git non riesce a capire da solo che i due file sono identici? Anche se uso --ignore-whitespace
quando rebase, Git mostra ancora dozzine di file come questo che sembrano identici. Sono in perdita per come risolvere questo.
Does 'diff' ti dà una differenza pure? – Reactormonk
Possono esserci differenze di fine linea? – ebneter
Trailing whitespaces, forse –