https://wiki.postgresql.org/wiki/Working_with_Git#Using_git_hooks
Quero testar rapidamente minha ideia (falhar rápido).
Então, o que quer que eu mude, comprometa-se com a filial local. então eu mudo para uma nova ramificação usando
git checkout -b test1
Posso obter rapidamente o local tão recente quanto o remoto (branch principal), então faço novas alterações.
Como automatizar isso usando ganchos git.
https://postgresql.life/post/andrey_borodin/
Acho que o que faço é um antipadrão. Tenho nos diretórios $HOME postgres0, postgres1, postgres2…postgresE, postgresF, postgres10… Sempre que não entendo o que estava mudando no postgresX - faço git clone https://github.com/postgres/postgres postgresX +1.
Sim, eu sei que o git foi inventado por um motivo. Mas para dar um nome ao ramo preciso ao menos de um entendimento sutil de qual era o propósito das mudanças.
Basicamente, quando crio uma nova ramificação, posso obter o controle remoto mais recente automaticamente. Mas antes de mudar, se o branch antigo não for confirmado, o branch antigo será perdido? (então eu preciso evitar isso).
Quero ter certeza de que toda vez que usar "git checkout -b", o conteúdo local da nova ramificação seja tão atualizado quanto o remoto mais recente. (Isso significa que mais tarde, quando eu faço alguma alteração ou quebro alguma coisa, é tudo culpa minha) também, as alterações do ramo anterior ainda estão lá. (Eu quero automatizar isso).
Após uma discussão no chat, esclarecemos o que o OP queria.
Suponha que o upstream tenha os commits R1, R2 e R3 nele. O branch1 local tinha estes (R1, R2, R3) e alguns commits locais L1 e L2.
Outro commit é feito para o controle remoto (R4).
Em seguida, uma nova ramificação é criada localmente (branch2) e selecionada. A questão é como usar git hooks para que o branch2 esteja atualizado em relação ao controle remoto, com efeito, para fazer um
git fetch
automaticamente.Isso não é algo adequado para git hooks. Pode-se argumentar que também não é adequado para aliases git, pois não se sabe se o controle remoto está acessível no momento em que a ramificação está sendo criada.
De qualquer forma, a sequência de comandos desejada é (supondo que o controle remoto seja chamado de tradicional
origin
Se houver conflitos de edição entre L1+L2 e R4, eles serão relatados no rebase e precisam ser corrigidos.
Isso deixará o branch1 como R1-R2-R3-L1-L2 e o branch2 como R1-R2-R3-R4-L1'-L2'.