Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Git: Pull is not possible because you have unmerged files.
Forum PHP.pl > Forum > Kontrola i zarządzanie projektami
mrc
Hej

Mam taki problem, że przy każdym pushu do repo gita pojawia mi się długa lista plików z różnymi statusami (modified, added, deleted). oraz tekst

Cytat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.


Wygląda na to, że gdzieś kiedyś coś źle naprawiłem przy podmianie jakiejś biblioteki. Macie może sposób, żeby to naprawić?
nospor
piszesz ze robisz PUSH, podczas gdy komunikat bledu mowi o PULL. Tak jest naprawde?
mrc
Sam się temu dziwię, ale tak jest na prawdę. Nie mam żadnego automatu żeby robiło mi pull przy pushu (czytałem o takich cudach).

U góry tej dużej listy pojawia mi się jeszcze coś takiego:

Cytat
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 569 bytes | 0 bytes/s, done.
Total 6 (delta 5), reused 0 (delta 0)
Pyton_000
git merge --abort
i potem pull
nospor
No dobrze, a jak robisz git status to nie pokazuje ci tych plikow, ze nie sa skomitowane?
mrc
@Pyton

Cytat
git merge --abort
fatal: There is no merge to abort (MERGE_HEAD missing).


@nospor

Mam te pliki, ale wygląda na to, że nie mają żadnego statusu (modified, added, deleted).
Pyton_000
Dobra to jeszcze raz...
Jakie polecenie wykonujesz i jaką odpowiedź dostajesz...
mrc
Cała procedura wygląda tak:

Robię branch z mastera
Tworzę kod
Robię commit
Przełączam się na mastera
Merguję mojego brancha
Robię git push origin master

I w tym momencie pojawia mi się:

Cytat
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 569 bytes | 0 bytes/s, done.
Total 6 (delta 5), reused 0 (delta 0)


I długa lista plików

I dalej:

Cytat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.


Przy okazji dodam że push wykonuje się dobrze, pushuje.
Pyton_000
Zapytam jeszcze raz....
Jakie polecenia wykonujesz (Dokładne Copy&Paste) I jakie odpowiedzi otrzymujesz (Też Copy&Paste).
CAŁE odpowiedzi czyli WŁĄCZNIE z listą plików ich STANEM
mrc
Kod
git checkout master
git pull origin master
git checkout -b mybranch

... changes in code...

git add .
git commit -m "my message"
git push origin mybranch
git checkout master
git merge mybranch
git push origin master


Odpowiedź jest taka, jaką podałem powyżej. Listy plików podać nie mogę, NDA.

Lista plików to jest coś na zasadzie:

Kod
remote: D    file_path
remote: A    file_path2
remote: M    file_path3
Pyton_000
`git merge mybranch` tutaj masz problem.
zrób sobie `git status` i pokaż wynik (Tym razem WŁĄCZNIE z plikami .... możesz zmienić nazwy na xxxx jak Ci nie pasuje)
mrc
Przed git merge mybranch robię git status i mam:

Cytat
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
Pyton_000
nie przed a po

lub przed merge na master zrób

git fetch origin
git reset --hard origin/master
mrc
git merge mybranch

Cytat
Merge branch 'mybranch' into master

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
~
~


Robię w vim :q

i git status:

Cytat
On branch master
Your branch is ahead of 'origin/master' by 2 commits.
(use "git push" to publish your local commits)
nothing to commit, working directory clean


Na dodatek powiem, że to musi być coś w repo (a nie lokalnie), bo inni którzy korzystają z tego repo mają to samo.
nospor
@mrc to zes zagial klina naszemu lokalnemu specowi od gita smile.gif Przez CIebie dwie noce nie bedzie mogl spac biggrin.gif


Takie moze glupie rozwiazanie z mojej strony, ale jakbys zrobil na nowo clona i sprobowal na nim powtorzyc wszystkie kroki?

Cytat
Na dodatek powiem, że to musi być coś w repo (a nie lokalnie), bo inni którzy korzystają z tego repo mają to samo.
A, to moze zmieniac postac rzeczy. Robiles git status na repo? Tam tez nic nie pokazuje? Jesli nie, to moze poprostu wyzerowac repo i na nowo zrobic tam pusha calego chocby od Ciebie?
mrc
@nospor

Próbowałem clona w nowym katalogu. Problem się powtarzał. Wszędzie gdzie dam sobie git status, nie mam żadnych niezmergowanych plików. Jedyne rozwiązanie to będzie chyba zrobienie nowego repo, tyle że to na pewno poczeka (są inne priorytety). Wkurzająca jest jednak długa lista plików przy push, bo zaśmieca terminal.
Pyton_000
Zrób jeszcze `git fetch origin` i pokaż wynik i `staus` wynik
Coś mi się zdaje że ktoś jakiś cwany mógł zrobić niechcący push --force
nospor
Cytat
ktoś jakiś cwany mógł zrobić niechcący push --force
Hehe, to jak ktos byl cwany, to raczej niechacy tego nie zrobil wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.