У мене є гіт git (званий v4), який був зроблений від майстра лише вчора. Було декілька змін у master, які я хочу потрапити у v4. Отже, у v4 я спробував зробити ребайт від master, і один файл продовжує викручувати речі: однорядний текстовий файл, який містить номер версії. Цей файл є app/views/common/version.txt
, який перед повторним публікацією містить цей текст:
v1.4-alpha-02
Ось що я роблю:
> git rebase master
First, rewinding head to replay your work on top of it...
Applying: new version, new branch
error: patch failed: app/views/common/version.txt:1
error: app/views/common/version.txt: patch does not apply
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging app/views/common/version.txt
CONFLICT (content): Merge conflict in app/views/common/version.txt
Failed to merge in the changes.
Patch failed at 0001 new version, new branch
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
version.txt
Тепер виглядає наступним чином :
<<<<<<< HEAD:app/views/common/version.txt
v1.4-alpha-02
=======
v1.4-alpha-01
>>>>>>> new version, new branch:app/views/common/version.txt
Отже, я прибираю це, і це виглядає приблизно так:
v1.4-alpha-02
а потім я спробував продовжувати: спочатку я намагаюся зробити:
> git commit -a -m "merged"
# Not currently on any branch.
nothing to commit (working directory clean)
Не щастить там. Отже, я намагався додати файл:
git add app/views/common/version.txt
Немає відповіді. Жодна новина не є гарною новиною, я думаю. Отже, я намагаюся продовжувати:
> git rebase --continue
Applying: new version, new branch
No changes - did you forget to use 'git add'?
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
Саме в цей момент, обходячись цим, я відбиваю голову від столу.
Що тут відбувається? Що я роблю неправильно? Хтось може мене встановити прямо?
EDIT - для унутбу
Я змінив файл, як ви запропонували, і отримав ту саму помилку:
> git rebase master
First, rewinding head to replay your work on top of it...
Applying: new version, new branch
error: patch failed: app/views/common/version.txt:1
error: app/views/common/version.txt: patch does not apply
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging app/views/common/version.txt
CONFLICT (content): Merge conflict in app/views/common/version.txt
Failed to merge in the changes.
Patch failed at 0001 new version, new branch
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
git rebase master
і нехай провалюється ; 2) потім ви відредагуєте version.txt
та зробите його так, як це повинно виглядати в цій точці, і збережіть його; 3) то ти git add .../version.txt
; 4) тоді ти робиш git rebase --continue
( не «вчиняєш» )! Якщо це rebase --continue
досягає успіху, це вже зроблено (тут немає потреби git commit
!) - тож все, що залишилося зробити, - це git push
(якщо ви використовуєте віддалений репо). Сподіваюся, це допоможе, якщо я правильно зрозумів :)
- ура!