Czy jest jakiś sposób na użycie tych trzech poleceń w jednym?
git add .
git commit -a -m "commit" (do not need commit message either)
git push
Czasami zmieniam tylko jedną literę, wypełnienie CSS lub coś takiego. Mimo to muszę napisać wszystkie trzy polecenia, aby wprowadzić zmiany. Istnieje wiele projektów, w których jestem tylko jednym popychaczem, więc to polecenie byłoby niesamowite!
Odpowiedzi:
Kompilowanie odpowiedzi @ Gavina:
Uczynienie lazygit funkcją zamiast aliasu pozwala przekazać argument. Dodałem następujące pliki do mojego .bashrc (lub .bash_profile, jeśli Mac):
Pozwala to na dostarczenie komunikatu zatwierdzenia, takiego jak
Możesz oczywiście pogłębić tę kwestię, akceptując jeszcze więcej argumentów, takich jak to, które zdalne miejsce do przepchnięcia lub która gałąź.
źródło
$*
zamiast$1
zapisywania, wpisując cytaty:lazygit My commit msg
function dirtygit() { git add . git commit -a -m "$*" git push }
W końcu dodałem alias do mojego
.gitconfig
pliku:Stosowanie:
git cmp "Long commit message goes here"
Dodaje wszystkie pliki, następnie używa komentarza do wiadomości zatwierdzenia i wypycha go do źródła.
Myślę, że to lepsze rozwiązanie, ponieważ masz kontrolę nad tym, czym jest komunikat zatwierdzenia.
Alias można również zdefiniować z wiersza poleceń, co dodaje go do
.gitconfig
:źródło
!f() { ... }; f
dokładnie robi? Więcej wyjaśnień tej linii sprawi, że odpowiedź będzie jeszcze lepsza.f
, a następnie wywołuje ją.git pull
na początku, aby zmniejszyć fuzje.Chociaż zgadzam się z Wayne Wernerem w jego wątpliwościach, jest to technicznie opcja:
Który określa uruchamiany alias
commit
ipush
. Użyj go jakogit acp
. Należy pamiętać, że takie aliasy „powłoki” są zawsze uruchamiane z katalogu głównego repozytorium git.Inną opcją może być napisanie haka po zatwierdzeniu, który wykonuje wypychanie.
Aha, nawiasem mówiąc, rzeczywiście można przekazywać argumenty do aliasów powłoki. Jeśli chcesz przekazać niestandardową wiadomość zatwierdzenia, zamiast tego użyj:
(Oczywiście, teraz, trzeba będzie dać commit wiadomość:
git acp "My message goes here!"
)źródło
git
automatycznie dodawano ucieczki (zaznaczone za pomocągit config -e
)Myślę, że możesz źle zrozumieć przepływ pracy, dla którego został zaprojektowany git. (Aby wyjaśnić / poprawić, co miałem na myśli w komentarzu, nie potrzebujesz tego
git add .
, ponieważcommit -a
zwykle służy temu samemu celowi - dodawanie wszelkich zmian, które nie zostały jeszcze wprowadzone, jeśli pliki zostały już dodane)Zazwyczaj robisz coś takiego:
myj, płucz, powtarzaj, dopóki nie skończysz funkcji X, nie osiągniesz punktu zatrzymania lub po prostu chcesz, aby inni widzieli, co zrobiłeś. To robisz
Git nie jest SVN - ale wygląda na to, że próbujesz go użyć jako takiego. Można znaleźć niektóre z zasobów na końcu artykułu tutaj aby się przydać.
źródło
git add .
igit commit -a
to nie to samoUżywam tego w moim .bash_profile
Wykonuje się jak
Nie zapomnij uruchomić
source ~/.bash_profile
po zapisaniu aliasu.źródło
Możesz użyć skryptu bash, ustawić alias, aby uruchomić dowolne polecenie lub grupę poleceń
źródło
Ustaw jako alias w bash:
Nazwać:
(Aby ten alias stał się trwały, musisz dołączyć go do pliku .bashrc lub .bash_profile)
źródło
Najprostszym rozwiązaniem byłoby:
git add
jest już zawarty w parametrze-commit, ale jeśli chcesz, możesz połączyć je wszystkie:źródło
W systemie Linux / Mac ta bardzo praktyczna opcja powinna również działać
Jeśli pracujesz nad nowym oddziałem utworzonym lokalnie, zmień
git push
element za pomocągit push -u origin branch_name
Jeśli chcesz edytować komunikat zatwierdzenia w edytorze systemu, to
otworzy edytor i po zapisaniu wiadomości również ją wypchnie.
źródło
Możesz spróbować gitu .
Po raz pierwszy (węzeł js musi zostać zainstalowany):
Po tym:
Aby wydać te trzy polecenia jednocześnie.
Dobrą rzeczą jest to, że nie musisz się martwić podczas ponownej instalacji systemu lub gdy chcesz to zrobić na różnych komputerach i nie jest wymagana modyfikacja pliku. Działa to również na różnych platformach (nie tylko Linux i Mac, ale także Windows w wierszu poleceń, jak
cmd
ipowershell
), tylko że musisz zainstalowaćnpm
inodejs
(git
oczywiście).źródło
Jeśli plik jest już śledzony, nie trzeba go uruchamiać
git add
, możesz po prostu napisaćgit commit -am 'your message'
Jeśli nie chcesz pisać wiadomości zatwierdzenia, możesz rozważyć zrobienie czegoś takiego
git commit --allow-empty-message -am ''
źródło
Ten wynik - spróbuj tego: Proste polecenie skryptu dla git add, git commit i git push
Otwórz CMD w systemie Windows i wklej tę odpowiedź
git commit -m "your message" . && git push origin master
źródło
Jak wspomniano w tej odpowiedzi, możesz utworzyć alias git i przypisać do niego zestaw poleceń. W takim przypadku byłoby to:
i używaj go z
źródło
Napisz mały skrypt o nazwie gitpush.sh z poniższymi wierszami i dodaj go do swojego katalogu ~.
Teraz dodaj alias do ~ / .bashrc jak poniżej:
Teraz z dowolnego repozytorium git po prostu napisz „wiadomość” gitpush.
źródło
Używam pliku wsadowego:
źródło
Występują pewne problemy z powyższymi skryptami:
shift „usuwa” parametr $ 1, w przeciwnym razie „push” przeczyta go i „źle zrozumie”.
Moja wskazówka:
źródło
Jeśli chcesz, aby svn zachowywał się w git commit, użyj tego w aliasach git w .gitconfig
commit = "!f() { git commit \"$@\" && git push; };f"
źródło
Jeśli używasz skorupy ryby (budując odpowiedź btse):
Zapisz ten plik w pliku „~ / .config / fish / functions” jako „quickgit.fish”. Utwórz katalog, jeśli nie istnieje. '--git-dir = $ PWD / .git' Zapewnia, że uruchamiamy polecenia git przeciwko projektowi git, w którym wywołaliśmy funkcję
Zrestartuj terminal, przejdź do projektu, dokonaj zmian, a teraz możesz wywołać „przykładową wiadomość typu quickgit” „”. Zmiany będą teraz dodawane, zatwierdzane i wypychane :).
Można również znaleźć jako Gist tutaj: https://gist.github.com/Abushawish/3440a6087c212bd67ce1e93f8d283a69
źródło
Jest już wiele dobrych rozwiązań, ale oto rozwiązanie, które uważam za bardziej eleganckie w sposobie, w jaki chcę pracować:
Umieszczam skrypt na swojej ścieżce o nazwie „git-put”, który zawiera:
To pozwala mi uruchomić:
.. aby dodać wszystkie pliki, zatwierdzić je i wypchnąć.
(Dodałem również „-u”, ponieważ lubię to robić, mimo że nie jest to związane z tym problemem. Zapewnia to, że gałąź upstream jest zawsze skonfigurowana do ściągania.)
Podoba mi się to podejście, ponieważ pozwala także na użycie polecenia „git put” bez dodawania wszystkich plików (pomiń „-a”) lub z innymi opcjami, które chciałbym przekazać, aby zatwierdzić. Również „put” to krótki film „push” i „commit”
źródło
Jeśli używasz VSCode, możesz pobrać to rozszerzenie, które pozwoli ci to zrobić za pomocą jednego prostego skrótu klawiaturowego.
źródło
Jeśli używasz komputera Mac:
Uruchom Terminal Wpisz „cd ~ /”, aby przejść do katalogu domowego
Wpisz „touch .bash_profile”, aby utworzyć nowy plik.
Edytuj .bash_profile za pomocą swojego ulubionego edytora (lub możesz po prostu wpisać „open -e .bash_profile”, aby otworzyć go w TextEdit).
Skopiuj i wklej poniżej do pliku:
Następnie zrestartuj terminal i po prostu dodaj, zatwierdź i wciśnij jedną prostą komendę, przykład:
źródło
Dla użytkowników MAC VSC najlepsza konfiguracja to:
1) naciśnij „shift + cmd + P” i wpisz:
Naciśnij klawisz ENTER (spowoduje to zainstalowanie polecenia kodu, aby łatwo uzyskać dostęp do pliku bash_profile)
2) możesz teraz uruchomić:
code ~/.bash_profile
aby otworzyć pusty bash_profile3) wprowadź tam nową funkcję:
4) teraz uruchom ponownie VSC
5) wprowadź zmianę, zapisz ją i wpisz,
lazygit message
aby uruchomić trzy polecenia jednocześnieźródło
Dla użytkowników systemu macOS:
Otwórz Terminal lub iTerm2 terminala lub inną, którego używasz.
Przejdź do folderu profilu użytkownika za pomocą polecenia
~/
. Jest to domyślny folder dla.bash_profile
pliku:Wpisz
nano .bash_profile
To polecenie otworzy.bash_profile
dokument (lub utworzy go, jeśli jeszcze nie istnieje) w najłatwiejszym w użyciu edytorze tekstu dla terminala -nano
.Teraz możesz dokonać prostej zmiany w pliku. Wklej te wiersze kodu, aby zmienić monit w terminalu:
Teraz zapisz zmiany, pisząc
ctrl + o
i naciskając Return, aby zapisać. Następnie wyjdźnano
, piszącctrl + x
.Teraz musimy aktywować twoje zmiany. Wpisz
source .bash_profile
(lub. ~/.bash_profile
) i obserwuj swoją szybką zmianę.W iTerm2
Preferences/Profiles/General/Command
ustaw naLogin Shell
iSend text at start
nasource ~/.bash_profile
. Nie musisz więc robić tego ręcznie po każdym restarcie systemu macOS.Poświadczenia: https://natelandau.com/my-mac-osx-bash_profile
źródło
Zrobiłem ten skrypt .sh dla polecenia
źródło
Ponieważ pytanie nie określa, która powłoka, oto wersja eshell oparta na wcześniejszych odpowiedziach. To znajduje się w pliku aliasu eshell, który może znajdować się w ~ / .emacs.d / eshell / alias Dodałem pierwszą część z https://github.com/rupa/z/, która pozwala ci szybko cd do katalogu , dzięki czemu można go uruchomić bez względu na bieżący katalog.
źródło
Dodaj
~/.bash_profile
do dodawania, zatwierdzania i wypychania za pomocą jednego polecenia:Stosowanie:
Nie są potrzebne cudzysłowy, chociaż nie można używać średników ani nawiasów w komunikatach zatwierdzania (dozwolone są pojedyncze cudzysłowy). Jeśli chcesz któreś z nich, po prostu wstaw w cudzysłowie podwójny cudzysłów, np .:
Aby utworzyć komentarz w swojej wiadomości:
Istnieje również funkcja dodawania i zatwierdzania w podobny sposób:
Działa dokładnie tak samo jak ta
g
funkcja i ma te same ograniczenia. Po prostuc
zamiast tego. Na przykładMożesz także dodać alias do wypychania do pilota:
Stosowanie:
Że ilości do 2 liter,
c
ip
używasz podczas pracy z repozytorium git. Lub możesz użyćg
zamiast tego, aby zrobić to wszystko za pomocą tylko jednej litery.Pełna lista aliasów i funkcji: https://gist.github.com/matt360/0c5765d6f0579a5aa74641bc47ae50ac
źródło
Opierając się na
lazygit
odpowiedzi, poniższe rozwiązanie dodaje kontrolę użytkownika, aby zweryfikować zmiany przed wypchnięciem. W przypadku anulowania cofnie polecenia. A wszystko to stanie się wtedy i tylko wtedy, gdy nastąpią zmiany w lokalnym repozytorium.źródło
Jest to idealne rozwiązanie do grupowania poleceń.
Polecenia grupowania
źródło
Lubię uruchomić następujące:
źródło
;
należy zastąpić&&
w poleceniu, ponieważ później wykonagit push
polecenie tylko wtedy, gdy nie ma błędu w poprzednich poleceniach.Okazało się, że ten
yolo
alias jest niesamowity, nawet jeśli jestem leniwy, aby przesłać losowy komentarz do zatwierdzenia. Działa naprawdę dobrze po wyjęciu z pudełka, więc po prostu to robię,git yolo
a wszystkie moje zmiany są wypychane automatycznie.źródło