Dado que o GitHub fornece aplicativos GUI para Mac e Windows , quais são os benefícios de aprender a usar o git na linha de comando?
Atualmente, estou usando o aplicativo mac para atualizar meus repositórios e, até agora, parece cobrir minhas necessidades. O que eu poderia estar perdendo?
Respostas:
Penso que esta questão é apenas um caso especial de "Por que devo aprender qualquer CLI para a qual exista uma alternativa de GUI?". Suspeito que a última pergunta seja tão antiga quanto as GUIs e suponho que houve muitas tentativas de respondê-la ao longo dos anos. Eu poderia tentar entender minha própria resposta a essa pergunta, mas Neal Stephenson articulou o que eu concordo como a "resposta final" mais de dez anos atrás em seu notável ensaio No começo ... Era a linha de comando .
Enquanto o ensaio aborda muitos aspectos da computação, e mesmo o próprio Stephenson acha que muitos agora estão obsoletos, o ensaio explica de que maneira as CLIs são melhores GUIs de uma maneira extremamente convincente que literalmente mudou minha vida. É uma leitura longa (~ 40 páginas), mas não posso recomendar o suficiente para quem faz perguntas como as que você fez aqui.
Finalmente, embora eu responda a qualquer tipo de pergunta CLI x GUI de maneira semelhante, acho que minha resposta se aplica especialmente à sua pergunta específica, devido a todas as coisas sobre o computador que você escolheu perguntar
git
.git
é indiscutivelmente a ferramenta mais recente de uma lista não tão longa de ferramentas de computador que são realmente dignas da metáfora do buraco-hawg, conforme descrito no ensaio de Stephenson.git
, como várias outras coisas unix-ish, é um motivo para conhecer as CLIs por si só. Às vezes, apesar de sua "porcelana" errática ; às vezes por causa disso.Então, sim, você pode definitivamente ser produtivo com a GUI do github, seja para OSX ou mesmo apenas no site deles. Sim, na verdade é bastante elegante, eu uso os recursos do site frequentemente. Mas não, você nunca terá esse sentimento divino quando seu mindinho direito estiver acima de um
git filter-branch
comando insano por um ou dois anos. Se eu tivesse que manter apenas uma coisa da minha experiência com a computação - os desafios mentais, as amizades íntimas formadas em um datacenter às 2 da manhã, a infinita escada de competência a ser escalada, tocando a vida dos usuários e reinando em PBs de dados preciosos, o confortável empregos e vida confortável - mantenha apenas uma coisa - seria esse sentimento divino.fonte
Se todas as suas necessidades forem atendidas, impressionantes, sem a necessidade de se aprofundar no git, seu tempo será melhor gasto para aprender algo que você realmente precisa.
O git é apenas uma ferramenta, quando você precisar fazer algo que não pode com um aplicativo GUI, você saberá. Lembre-se de que github! = Git.
fonte
A maioria dos recursos somente da CLI entra em ação quando você acidentalmente coloca seu repositório em um estado estranho e deseja corrigi-lo. Por outro lado, a maneira mais comum de colocar seu repositório em um estado estranho é usar recursos avançados que você não entende. Se você seguir o que a GUI fornece, isso atenderá às suas necessidades 99% do tempo.
A outra razão pela qual você pode querer aprender a CLI é que ela é a língua franca do git. Isso significa que, embora muitas pessoas usem GUIs diferentes em plataformas diferentes, se você pedir ajuda no StackOverflow ou em outro local, a resposta provavelmente virá na forma de comandos da CLI. Se você não conhece a CLI, suas opções para obter ajuda serão muito mais limitadas.
fonte
Os aplicativos GUI contam com interações manuais para executar comportamentos complexos. Isso é ótimo para configurar projetos e desenvolver coisas novas.
Os benefícios de uma interface de linha de comando (CLI) vêm da capacidade de criar scripts predeterminados que podem ser automatizados. Toda a GUI do GitHub é, são alguns gráficos agradáveis e botões sofisticados que chamam a CLI do git.
O que o aplicativo GUI não fará por você é atualizar automaticamente o tronco de um repositório diariamente em um servidor às 01:30, mas um trabalho cron que chama a CLI do git é uma maneira muito fácil de configurar isso.
Além disso, ao trabalhar em um projeto em equipe, é conveniente configurar scripts de instalação, criar scripts, implantar scripts e afins, para que os colegas possam se concentrar na solução de problemas em vez de tarefas repetitivas e tediosas.
fonte
Outro motivo pelo qual a CLI pode ser preferível é uma questão de fluxo de trabalho. Muitas estruturas são gerenciadas através da linha de comando. Usando o git através da CLI, deixe-me manter o foco no meu projeto e nesse diretório do projeto. Por exemplo, eu posso executar um teste e decidir confirmar as novas alterações, todas da mesma interface e local.
fonte
Recentemente, eu realmente tenho que me aprofundar no Git para poder ajudar com uma migração de SVN para Git. E o que aprendi é que as ferramentas de linha de comando do Git não são a parte complicada de aprender.
Os conceitos e idéias por trás do Git são a parte complexa (e não é porque eles foram mal projetados, mas simplesmente porque são estranhos à maioria das pessoas que vêm de algum outro VCS centralizado).
Depois de entender os conceitos, as instruções reais da linha de comando se tornaram relativamente fáceis. Isso significa que uma interface do usuário não ajuda realmente a entender o Git (exceto as operações mais simples).
fonte
git
são tão simples que as pessoas não conseguem entendê-los - estão procurando algo mais difícil.Saber que a CLI é útil para quando (e não se) você estiver em um ambiente em que não é possível acessar um aplicativo GUI.
Um cenário em potencial: você é solicitado a ajudar por apenas alguns dias em um projeto em um local fechado, onde é irritantemente difícil e demorado inserir novas ferramentas no sistema. Eles usam apenas CLI. Sua produtividade foi prejudicada porque você precisa aprender tudo de novo.
fonte
Um motivo para aprender o git da linha de comando é que a maior parte da documentação é escrita para esse ambiente. Além disso, se você fizer uma pergunta: "como faço para X com o git?", É provável que a resposta contenha comandos da linha de comando.
fonte
Um dos principais problemas com o uso de uma interface gráfica do usuário versus a linha de comando é que na maioria dos casos você não consegue ter o mesmo controle sobre o seu processo. Por exemplo, o aplicativo GitHub é ótimo em termos de usabilidade para muitos fluxos de trabalho do git, mas ainda pode ser complicado para processos avançados do git.
Como exemplo, aqui estão algumas coisas que eu ainda não descobri como fazer usando o aplicativo GitHub (outra coisa a ser observada é que cada GUI também possui uma curva de aprendizado).
Por fim, as CLIs permitem que os usuários usem essas ferramentas ao criar scripts.
fonte
Não conheço o GitHub para Mac, mas o aplicativo do Windows executa apenas as tarefas mais comuns - adicionar, confirmar, pressionar, puxar, etc. Tarefas mais complexas, como essas,
git merge --no-ff
precisam ser executadas na linha de comando.Além disso, existem casos com o git quando a GUI não está disponível, por exemplo, quando o SSH está em servidores remotos.
Mas, caso contrário, se a GUI fornecer tudo o que você precisa, aprender a linha de comando pode ser uma perda de tempo. Meu trabalho usa o TortoiseSVN em ambiente somente Windows, e não tive que tocar na linha de comando do SVN nem uma vez.
fonte
Acabei de aprender um caso em que a CLI pode ser melhor que a GUI. Para ilustrar isso, peguei um exemplo de um livro git - version control para todos.
Quando você deseja compartilhar através de uma intranet, pode usar:
Veja as etapas para criar um repositório simples.
Criando um repositório vazio no modo CLI
O comando para criar um repositório vazio seria o mesmo que você usou para clonar um repositório, exceto o parâmetro --bare, que faz toda a diferença.
git clone --bare C:\Users\raviepic3\Desktop\Workbench C:\generic_share\ Bare_Workbench
A execução do código anterior no console deve criar um clone simples do repositório do Workbench na sua pasta compartilhada comum chamada generic_share.Criando um repositório vazio no modo GUI
Criar um clone simples a partir de um repositório já existente usando a GUI é um processo fácil. Tudo que você precisa fazer é:
Copie o diretório .git do repositório existente e cole-o com um different_name.git (qualquer nome que você queira atribuir ao seu novo repositório bare) fora do repositório. No nosso caso, temos um repositório não bare chamado Workbench em C: \ Users \ raviepic3 \ Desktop \ dentro do qual temos content.docx. E agora eu quero criar um novo repositório simples usando esta GUI. Copio C: \ Users \ raviepic3 \ Desktop \ Workbench.git e colo-o como C: \ generic_share \ Bare_Workbench.git.
Abra o
config file
Bare_Workbench.git interno com um editor de texto e encontre a linha que dizbare = false
e substitua a string false por true.Salvar e sair.
Na GUI, você precisa fazer muitos cliques e lembrar qual arquivo deve ser editado. Na CLI, um comando simples faz tudo por você.
fonte