Como escolher facilmente cereja com magit?

40

Estou usando o magit há alguns meses e eu gosto muito. Mas uma coisa que ainda faço em um terminal é a colheita de cerejas.

O que é uma maneira simples de fazer isso?

caisah
fonte

Respostas:

31

Onde quer que você veja um commit em um buffer Magit, você pode selecioná- lo movendo o ponto para lá e digitando A A. Você também pode escolher várias confirmações de uma só vez: basta selecionar algumas confirmações usando a região e pressionar A A.

tarso
fonte
45

Versão Magit <= 1.4.2

É bem fácil:

  1. Entrar na visão geral magit-status
  2. Confira (pressione b b) o ramo que você deseja escolher.
  3. Faça um intervalo de log (pressione l r l) para encontrar as confirmações que deseja escolher. Aqui você seleciona os 2 ramos que deseja comparar.
  4. Role até o commit que você deseja selecionar e pressione Apara aplicar as alterações e também prepare-os juntos com a mensagem de commit. Se você pressionar a, não realizará as alterações, mas somente as aplicará.

Você não precisa fazer um intervalo de log para escolher a cereja. Sempre que vir um log de confirmação, você pode pressionar Apara selecioná-lo.

Versão Magit> = 2.1.0

Após a atualização do magit para 2.1, o fluxo de trabalho é diferente. Para ambos os métodos, você primeiro precisa iniciar magit-status.

Método A : Cherry Pick muda de outro ramo, um por um

  1. Pressione le, em seguida, opara obter uma lista de outros ramos.
  2. Selecione o ramo que você deseja escolher.
  3. Vá para o commit que você precisa e pressione Aseguido por Anovamente.
  4. A linha de status mostrará qual confirmação você selecionou

    por exemplo feature/ABC~4

    Pressione Enterpara aplicar as alterações.

Método B : Cherry Escolha todas as alterações de outro ramo

  1. Pressione Apara escolher o modo de seleção de cereja.
  2. Pressione Anovamente para aplicar e confirmar as alterações. Pressione apara aplicar apenas as alterações.
  3. Escolha um ramo para escolher as mudanças e pressione Enter.

Pessoalmente, prefiro o método A, pois você pode lidar melhor com conflitos de mesclagem.

cb0
fonte
8

Eu não uso paleta de cereja, mas ?participando de magit-statusshows y: Cherry. Isso executa o comando magit-cherry, que permite escolher uma cabeça e uma montante. Parece que é isso que você deseja.

Você pode digitar C-h r d m Magit RETpara ler o manual do Magit. Você pode usar C-s cherrye clicar repetidamente C-spara pesquisar no manual. Parece que as informações estão na seção 23:

Um dos confortos gité que ele pode lhe dizer quais confirmações foram mescladas a montante, mas não localmente e vice-versa. O subcomando do Git para isso é cherry(não deve ser confundido cherry-pick). O Magit tem suporte para isso, invocando o magit-cherryque está vinculado ypor padrão.

O Magit solicitará primeiro a revisão upstream (o padrão é o ramo remoto atualmente rastreado, se houver) e a revisão principal (o padrão o ramo atual) para usar na comparação. Você verá um novo buffer no qual todas as confirmações são listadas com um marcador direcional, sua revisão e a primeira linha da mensagem de confirmação. O marcador direcional +indica uma confirmação que está presente no upstream, mas não no cabeçalho ou -que indica um commit presente no head, mas não no upstream.

Nesta lista, você pode usar as ligações de teclas usuais para confirmações individuais de seleção ade cereja ( para seleção de cereja sem confirmação e A para o mesmo mais a confirmação automática). O buffer é atualizado automaticamente após cada seleção de cereja.

babá
fonte
11
Ao invocar o manual do Magit, você pode salvar um pressionamento de tecla executando, em C-h ivez de C-h r d. Isso levará você ao nível superior de Informações diretamente.
itsjeyd
11
@itsjeyd Nahh, C-h ilevará você para o último arquivo de informações que você abriu, por isso, se eu clicar C-h i m, poderia estar vendo um menu de capítulos no SICP em vez de um menu de tudo. Bater ddepois C-h iou C-h rgarantirá que você estará no diretório Informações antes de bater m.
N
Que truque legal, eu não sabia disso! Além disso, totalmente fora de tópico: Uma versão Info do SICP ?! Onde posso obter uma cópia? :)
itsjeyd
@itsjeyd eu mantê-lo no meu Dropbox, eu acho que eu entendi a partir daqui: github.com/webframp/sicp-info
nanny
11
Obrigado! Eu verifiquei o MELPA e verifica-se que há um pacote que é construído a partir desse repositório. Então, instalar a versão Informações de SICP é tão fácil como M-x package-install RET sicp RET:)
itsjeyd