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

Для удобства можно включить библиотеку tgmath.h для макросов типа генерации. Он создает то же имя функции, что и двойная версия для всех типов переменных. Например, например, он определяет макрос sqrt(), который расширяется до функции sqrtf(), sqrt() или sqrtl(), в зависимости от типа предоставленного аргумента.

Поэтому не нужно помнить имя соответствующей функции для разных типов переменных!

#include <stdio.h>
#include <tgmath.h>//for the type generate macros. 
#include <complex.h>//for easier declare complex variables and complex unit I

int main(void)
{
    double complex z1=1./4.*M_PI+1./4.*M_PI*I;//M_PI is just pi=3.1415...
    double complex z2, z3, z4, z5; 

    z2=exp(z1);
    z3=sin(z1);
    z4=sqrt(z1);
    z5=log(z1);

    printf("exp(z1)=%lf + %lf I\n", creal(z2),cimag(z2));
    printf("sin(z1)=%lf + %lf I\n", creal(z3),cimag(z3));
    printf("sqrt(z1)=%lf + %lf I\n", creal(z4),cimag(z4));
    printf("log(z1)=%lf + %lf I\n", creal(z5),cimag(z5));

    return 0;
}
1665
задан Peter Mortensen 31 August 2017 в 23:49
поделиться

2 ответа

Для меня git branch --merged не показывает ответвления, которые были объединены через PR GitHub. Я не уверен в причинах, но я использую следующую строку для удаления все местные филиалы, которые не имеют удаленного ответвления отслеживания :

diff <(git branch --format "%(refname:short)") <(git branch -r | grep -v HEAD | cut -d/ -f2-) | grep '<' | cut -c 3- | xargs git branch -D

Объяснение:

  • git branch --format "%(refname:short)" дает список местных филиалов
  • git branch -r | grep -v HEAD | cut -d/ -f2-, дает список удаленных ответвлений, отфильтровывание HEAD
  • diff <(...) <(...) дает разность вывода двух команд в круглых скобках
  • grep '<' ответвления фильтров, которые существуют в первом списке, но не во втором
  • cut -c 3- дает строку, начинающую с 3-го символа, таким образом удаление префикса <
  • xargs git branch -D выполняется git branch -D против каждого имени ответвления

, С другой стороны, можно избежать grep -v '<' как это:

diff --old-line-format="%L" --new-line-format="" --unchanged-line-format="" <(git branch --format "%(refname:short)") <(git branch -r | grep -v HEAD | cut -d/ -f2-) | xargs git branch -D
3
ответ дан 22 November 2019 в 20:06
поделиться

Учитывая Вас хочу удалить объединенные ответвления, необходимо удалить удаленно отслеживающие ответвления только, если Вы не заявляете иначе.

Так для удаления тех ответвлений можно сделать это

git branch --remote --merged origin/master | egrep -v "(^\*|master|development)" | cut -b 10- | xargs git push --delete origin

, Это удалит все объединенные ответвления (объединенный с ведущим устройством) кроме master и development.

0
ответ дан 22 November 2019 в 20:06
поделиться
Другие вопросы по тегам:

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