Próbuję zaangażować się w projekt na github.com z mojego roboczego laptopa, który jest już skonfigurowany dla firmowego serwera git. Czy istnieje sposób na zatwierdzenie z określeniem różnych poświadczeń autora, możliwy przy użyciu innego pliku konfiguracyjnego lub innych przełączników wiersza poleceń?
Próbowałem użyć
--author="My Name <[email protected]>"
i otrzymałem wiadomość:
Committer: unknown <[email protected]>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
git config --global user.name "Your Name"
git config --global user.email [email protected]
After doing this, you may fix the identity used for this commit with:
git commit --amend --reset-author
ale nadal nie zaktualizowałem mojej nazwy użytkownika za zobowiązanie się do projektu github.com. Czy jest coś jeszcze, czego mogę spróbować i czy to w ogóle możliwe?
-c user.name=Me [email protected]
. Aby użyć niestandardowej konfiguracji globalnej, zobacz to pytanie lub użyj aliasu powłoki zawierającego-c
opcje. Ale żadna z tych rzeczy nie jest prawdopodobnie właściwa w tej sytuacji - potrzebujesz konfiguracji per-repo.{author,committer}.{name,email}
. Zobacz moją odpowiedź poniżejOdpowiedzi:
Po pierwsze, autor niekoniecznie jest tym samym, co popełniający. Git śledzi oba.
Aby ustawić nazwę używaną tylko dla tego repozytorium, możesz zrobić:
git config user.name "Your Name" git config user.email "Your email"
Zwróć uwagę na brak
--global
opcji. Spowoduje to ustawienie konfiguracji tylko w tym repozytorium.Alternatywnie możesz to zrobić tylko dla jednego polecenia, używając
-c
opcji:git -c "user.name=Your Name" -c "user.email=Your email" commit ...
Ale myślę, że lepiej jest po prostu użyć powyższych opcji konfiguracji.
źródło
Spróbuj dołączyć to do polecenia git:
Jest to w porządku w przypadku jednorazowego użycia, ale wolisz zapisać to w pliku .git / config lokalnego repozytorium, które sklonowałeś z git. Można to zrobić uruchamiając
git config
(no --global lub --system, aby ustawić je jako „lokalne dla repozytorium”) lub edytując.git/config
(ma taką samą składnię jak~/.gitconfig
źródło
.bash_aliases
i / lub możesz również ustawić punkt zaczepienia przed zatwierdzeniem, aby odrzucał zatwierdzenie, gdy użytkownik nie jest zdefiniowany.Można również ustawić zmienne środowiskowe
GIT_COMMITTER_NAME
,GIT_COMMITTER_EMAIL
,GIT_AUTHOR_NAME
, iGIT_AUTHOR_EMAIL
na zasadzie per-shell lub nawet za dowódcy.źródło
git commit --amend
. Zmienił się tylko komisarz.git commit --amend --author="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>"
git commit --amend
zgodnie z projektem nie zmienia autora, jak mówi strona podręcznika. Rozwiązanie:git commit --amend --reset-author
Wierzę, że mógłbyś biegać:
dla różnych części git. Spróbuj otworzyć folder, w którym wykonywana jest praca dla repozytorium, na serwer github.
Upewnij się, że widzisz folder .git w tym folderze roboczym. Teraz otwórz ten folder w Terminal / Console / CommandPrompt i spróbuj zmienić nazwę użytkownika i adres e-mail dla tego folderu, uruchamiając polecenia, które podałem powyżej.
Zmieniając to, możesz teraz mieć dostęp do serwera GitHub.
Spójrz tutaj: https://help.github.com/articles/setting-your-username-in-git
Uważam również, że istnieje sposób na przekazanie do zdalnego repozytorium przy użyciu nazwy użytkownika i hasła github w samym poleceniu, ale nie cytuję go, ponieważ nie zadziałało.
źródło
Kontynuując odpowiedź Jesse Glicka, rozszerzoną implementację, ponieważ IMO jego sugestia jest najlepszym sposobem, aby to osiągnąć.
Dodaj poniższe do swojego .bash_profile. Po pierwszym uruchomieniu dowolnego polecenia git w aktywnej powłoce zostanie wyświetlony monit o użytkownika. Następnie zapamięta użytkownika dla wszystkich kolejnych uruchomień.
(oczywiście odsyłaj wprowadzoną wartość użytkownika do dokładnych nazw i adresów e-mail dla różnych wartości git auther / name w bloku case i zaktualizuj przypisania w razie potrzeby)
źródło
Właściwie od Git 2.22 (Q2 2019) masz nową opcję:
{author,committer}.{name,email}
Wprowadzono cztery nowe zmienne konfiguracyjne, które mają zastąpić jeuser.{name,email}
w bardziej konkretnych przypadkach.Zobacz commit 39ab4d0 (04 lutego 2019) autorstwa Williama Hubbsa (``) .
(Scalone przez Junio C Hamano -
gitster
- w zatwierdzeniu 4e021dc , 07 marca 2019 r.)źródło