Jak mogę mieć powłokę dla git jak w Windows?

9

Gdy korzystam z systemu Windows, powłoka (nawet standardowa powłoka systemu Windows) pokazuje podstawowe informacje o repozytorium git, gdy jesteś w repozytorium git. Rzeczy takie jak aktywna gałąź i może kodowanie kolorami.

Czy istnieje sposób, aby mieć to samo w Ubuntu?

Nicola Peluchetti
źródło
jaką wersję git zainstalowałeś w systemie Windows? Jakie polecenia uruchamiasz, aby uzyskać te informacje? Próbowałeś już tych poleceń z git-corezainstalowanym pakietem?
jackweirdy
Na git mam najnowszą wersję, ale po prostu jeśli używam wiersza polecenia i jestem w repozytorium git, widzę nazwę aktywnej gałęzi
Nicola Peluchetti

Odpowiedzi:

4

Powłoka Git systemu Windows, która jest naprawdę po prostu bash, ustawia monit $PS1na długi ciąg znaków, który obejmuje $(__git_ps1).

__git_ps1 jest zdefiniowany jako funkcja o długości prawie 100 linii, która wypisuje nazwę bieżącej gałęzi w nawiasach.

/etc/profile(co jest C:\Program Files (x86)\Git\etc\profileprzynajmniej w moim systemie)) wywołuje /etc/git-completion.bash, która definiuje __git_ps1funkcję, ustawia $PS1, definiuje między innymi pewne uzupełnienia specyficzne dla git.

git-completion.bashWykorzystywane przez Git Bash wydaje się być oparte na tym .

Keith Thompson
źródło
1
Więc co dokładnie powinienem zrobić, aby aktywować to na uBuntu? :) Przepraszam, ale jestem nowy.
Nicola Peluchetti
Przejdź do katalogu domowego i wpisz polecenie w terminalu jako „gedit .baschr”, a pojawi się monit o edycję pliku .baschr. Pamiętaj jednak, aby dla bezpieczeństwa mieć oryginalną kopię w innym katalogu.
Rahal Kanishka
4

Dla koloru:

git config --global color.ui true
Justin Seiter
źródło
1

Jeśli używasz zsh jako powłoki, możesz uznać moje pliki konfiguracyjne za przydatne. Spróbuj source prompt/blockyzobaczyć, jak wygląda monit w repozytorium Git.

pconley
źródło
1
  • Jak zatrzymać ucieczkę kolorów zachęty podczas bashu, ma przykład. Możesz skopiować go z odpowiedzi, a następnie użyć gedit, aby wkleić go do dolnej części pliku .bashrc w katalogu domowym (oczywiście najpierw tworząc kopię zapasową).

  • Jeśli plik .bashrc, o którym wspomina Keith w swojej odpowiedzi, jest częścią git, będzie on objęty licencją GPL2, więc możesz swobodnie wkleić go również do pliku .bashrc. Będziesz musiał pobrać plik /etc/git-completion.bash i zainstalować go gdzieś, a nowy plik .bashrc będzie się do niego odnosił.

  • Oto coś, co możesz wkleić i wypróbować w Arturo Fernandez na stronie http://www.bsnux.com/recipes/how-display-you-current-git-branch-prompt.html

 # Wyświetlanie wewnątrz gałęzi git
 funkcja parse_git_branch {
   git branch --no-color 2> / dev / null | sed -e '/ ^ [^ *] / d' -e 's / * \ (. * \) / (\ 1) /'
 }

 funkcja proml {
   lokalny ZIELONY = "\ [\ 033 [0; 32m \]"
   lokalny BIAŁY = "\ [\ 033 [0; 37m \]"

 PS1 = „[\ u @ \ h \ w $ GREEN \ $ (parse_git_branch)] $ BIAŁY \ $”
 PS2 = „>”
 PS4 = „+”
}
proml
John S Gruber
źródło