Как я могу объединить много коммитов, но оставить один?

Попробуйте следующее:

<script language="JavaScript" type="text/javascript" src="jquery/jquery.js"></script>
<script>
    jQuery.noConflict();
    (function ($) {
        function readyFn() {
            // Set your code here!!
        }

        $(document).ready(readyFn); 
    })(jQuery);

</script>
74
задан zb226 9 May 2017 в 11:19
поделиться

3 ответа

Используйте интерактивную перебазировку:

git rebase -i SHA-OF-FIRST-COMMIT-IN-BRANCH

Это откроет что-то вроде этого в вашем $ EDITOR:

    pick 8ac4783 folders and folders
    pick cf8b1f5 minor refactor
    pick 762b37a Lots of improvement. Folders adn shit.
    pick 3fae6e1 Be ready to tableview
    pick b174dc0 replace folder collection view w/ table view
    pick ef1b65b more finish
    pick ecc407f responder chain and whatnot
    pick 080a847 play/pause video
    pick 6719000 wip: movie fader
    pick c5f2933 presentation window fade transition

    # Rebase e6f77c8..c5f2933 onto e6f77c8
    #
    # Commands:
    #  p, pick = use commit
    #  e, edit = use commit, but stop for amending
    #  s, squash = use commit, but meld into previous commit
    #
    # If you remove a line here THAT COMMIT WILL BE LOST.
    # However, if you remove everything, the rebase will be aborted.
    #

Итак, вы просто удалите строку, содержащую отладочную фиксацию, запишите файл и закройте редактор, и git будет скажу вам что-то вроде:

Successfully rebased and updated refs/heads/master.

Теперь вы можете просто выполнить слияние в этой ветке для управления.

ОБНОВЛЕНИЕ: Следует отметить, что изменение истории с помощью rebase должно только бывают в частных филиалах. Если эта ветка была опубликована, используйте git revert , как предложено другим респондентом.

53
ответ дан 24 November 2019 в 11:59
поделиться

Несмотря на то, что другие SCM используют его для обозначения, в git , git revert является обратным вишневым выбором.

68
ответ дан 24 November 2019 в 11:59
поделиться

Используйте интерактивную перебазировку для удаления нежелательных коммитов.

В новой ветке «foo-merge», созданной из «foo»:

git rebase -i master

После того, как вы вошли в коммит, отредактируйте режиме удалите строки, содержащие отладочные коммиты, сохраните и выйдите из редактора.

После перенастройки просто перетащите foo-merge в мастер:

git checkout master
git pull . foo-merge
2
ответ дан 24 November 2019 в 11:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: