Seçeneklerden biri, bir shell işlemi oluşturmak ve işi yapmak için Git komut satırı aracını kullanmaktır. Bunun genel kabuledilen olma avantajı vardır ve Git’in tüm özellikleri desteklenir. Aynı zamanda oldukça kolaydır, çünkü çoğu çalışma zamanı (runtime) ortamı, komut satırı argümanlarıyla bir işlemi çağırmak için nispeten basit bir özelliğe sahiptir. Ancak bu yaklaşımın bazı eksileri vardır.
Birincisi, tüm çıktının düz metin halinde olmasıdır. Bu, ilerleme ve sonuç bilgilerini okumak için, Git’in ara sıra değişen çıktı formatını ayrıştırmanız gerekeceği anlamına gelir; bu da verimsiz ve hataya açık olabilir.
Bir diğeri ise hata kurtarmanın olmamasıdır. Bir repo bir şekilde bozulmuşsa veya kullanıcının hatalı biçimlendirilmiş bir yapılandırma değeri varsa; Git birçok işlemi gerçekleştirmeyi reddedecektir.
Bir diğeri ise süreç yönetimidir. Git ayrı bir süreçte bir shell ortamını korumanızı ister, bu da bu karmaşayı gereksiz bir arttırabilir. Bu süreçlerin çoğunu koordine etmeye çalışmak (özellikle birden fazla süreçten aynı repoya erişme potansiyeli varsa) oldukça zor olabilir.