2015-11-26 2 views
2

У меня после совершения в моей отраслиОбъединение несколько совершает мерзавец

$ git log --pretty=oneline 
    aa2ea957db6bf5f097b0e2f046c4c3f76758c6d9 Merge branch 'CentralCache_Stats' of gi ==> When I pull from master it create new commit don't why ? 
    4ece4416421334e8be75893ef1416bb8509d2a44 [744] New API for central cache informa ==> I make changes and did commit --amend then also it create new commit. 
    a49d7ef9f2e0c7adedb8dee96f79ce1d9e2855db Merge branch 'master' of github.com:gsh ==> When I pull from master it create new commit don't why ? 
    b632ef35f7776e365e36b508d8e490b429646317 [744] New API for central cache informa ==> I make changes and forgot to add commit --amend 
    a8c54056cb3012fb8da7221b419857422b168046 [744] New API for central cache informa ==> I make come change 
    64892ae730b704a7f3f23bd8eaeaf206901df201 lower default transfer batch size down ==> This is master change 

Теперь я хочу, чтобы объединить все мои фиксации в одном.

$ git log --oneline --graph --decorate 
* aa2ea95 (HEAD, CentralCache_Stats) Merge branch 'CentralCache_Stats' of githu 
|\ 
| * a49d7ef (origin/CentralCache_Stats) Merge branch 'master' of github.com:gsh 
| |\ 
| | * a8c5405 (origin/master, origin/HEAD, master) [744] New API for central cach 
| * | b632ef3 [744] New API for central cache information 
| |/ 
* | 4ece441 [744] New API for central cache information 
|/ 
* 64892ae lower default transfer batch size down to 512 

Ahhh such a mess 

Одно из решений я получил обратно сброс мерзавца ГОЛОВЫ^п и не совершаю --amend, но проблема у меня есть изменения много кода, так решая конфликты будут проблемы

Я пытался делать

git rebase 
s aa2ea957db6bf5f097b0e2f046c4c3f76758c6d9 Merge branch 'CentralCache_Stats' of gi 
p 4ece4416421334e8be75893ef1416bb8509d2a44 [744] New API for central cache informa 
p a49d7ef9f2e0c7adedb8dee96f79ce1d9e2855db Merge branch 'master' of github.com:gsh 
p b632ef35f7776e365e36b508d8e490b429646317 [744] New API for central cache informa 
p a8c54056cb3012fb8da7221b419857422b168046 [744] New API for central cache informa 
p 64892ae730b704a7f3f23bd8eaeaf206901df201 lower default transfer batch size down 

Я получаю ошибку не может раздавить без предыдущей фиксации

git log 
commit 6bf5f097b0e2f046c4c3f76758c6d9 
Merge: 4ece441 a49d7ef 
.... 

commit 4ece4416421334e8be75893ef1416bb8509d2a44 
.... 

commit a49d7ef9f2e0c7adedb8dee96f79ce1d9e2855db 
Merge: b632ef3 a8c5405 
.... 

commit b632ef35f7776e365e36b508d8e490b429646317 
.... 

commit a8c54056cb3012fb8da7221b419857422b168046 
.... 

commit 64892ae730b704a7f3f23bd8eaeaf206901df201 
.... 

Как м решить эту проблему?

+0

Зачем вы хотите это сделать? Действительно ли это * беспорядочно? Что говорит 'git log -oneline -graph -decorate'? – Makoto

+0

@Makoto добавленный в вопросе. – eswaat

+0

Как насчет 'git reset HEAD ~ 2 --mixed', а затем' git commit'? – SevenEleven

ответ

0

Вам нужно только заботиться о совершении, скажем, вашей главной ветви. Если ваша история, к примеру, выглядит следующим образом, с головой на I

master A---B---H-------I 
       \  / 
branch1  C---E---G 
       \ /
branch2   D---F 

Затем вы можете сделать git reset A --mixed где A бы в этом случае HEAD~3. Теперь, что HEAD находится на A и --mixed оставил ваши изменения, вы должны иметь возможность зафиксировать их все сразу.

Смежные вопросы