Cześć. Powiedzmy, że założyłem branch lokalnie. Zrobiłem na nim commit i zanim zrobię push, chciałbym pokazać go tylko jednej lub paru osobom, które mogą być zainteresowane. Czy jest jakiś push, który pozwala mi określić widoczność commita?

- Rejestracja:prawie 17 lat
- Ostatnio:około 11 godzin
- Postów:1873
Ale po co tak robić? Załóż osobnego brancha, zrób do niego push i wyślij namiary na brancha.
- Rejestracja:prawie 8 lat
- Ostatnio:2 dni
- Postów:132
@Spearhead @Pyxis Czytam sobie o tym git diff
, ale nie całkiem wiem jak to zrobić. Tzn. pewnie interesuje mnie:
git diff hash_jakiegos_commita_na_devie_ktory_ma_kolega_ktoremu_chce_to_wyslac hash_ostatniego_commita_gdzie_sa_moje_zmiany
ale to raczej jeszcze nie wrzuca mi wszystkiego do pliku i nie wiem jak osoba, do której chciałbym to wysłać miałaby sobie to wgrać.

- Rejestracja:ponad 18 lat
- Ostatnio:2 dni
To się nazywa Pull Request (w git labie Merge Request). Robisz zmiany na branchu i dajesz do zatwierdzenia przed zrobieniem merge. Wydaje mi się że za pomocą hooków (lub ustawieniem git(huba/laba) można dać lub zabrać uprawnienia do pobrania zmian z danego brancha.

- Rejestracja:około 17 lat
- Ostatnio:4 minuty
Po kiego grzyba trzymać brancha w tajemnicy przed innymi członkami zespołu?
Jaki jest powód?
Najprościej po prostu założyć nowe prywatne repozytorium i dać dostęp osobie docelowej. Następnie zrobić push do nowego repo (git może obsługiwać wiele zdalnych repozytoriów)
IMO najwygodniejsze rozwiązanie.
Trzeba to po prostu ogarnąć na github/bitbucket/gitlab/.... .
Najlepiej dodać nowy remote, i na tego osobnego remote'a to wysłać, którego widzą tylko niektórzy.
Ale pamiętaj, że jeśli pracujesz w zespole, to w Twoim interesie jest żeby każdy członek tego zespołu zobaczył Twoje zmiany.

- Rejestracja:ponad 22 lata
- Ostatnio:około 24 godziny
Można użyć git-diff
, ale jest jeszcze nieco większy automat, w postaci git-format-patch
:
git format-patch <id>
Wygeneruje pliki .patch
dla każdego commita od podanego id (nie włącznie) do HEAD.
Pliki .patch
aplikuje się za pomocą git apply
(to samo dotyczy wyniku działania git diff
w standardowej konfiguracji, bo git diff
jest równoznaczny git diff -p
).

- Rejestracja:około 17 lat
- Ostatnio:4 minuty
Charles_Ray napisał(a):
Ale po co tak robić? Załóż osobnego brancha, zrób do niego push i wyślij namiary na brancha.
paranoise skomentował(a):
Sytuacja tyczyła się poprzedniej firmy. Starszy stażem kolega mówił żeby tak nie robić, bo potem brzydko wygląda. Publicznie miał być tylko jeden branch do jednego zadania, nazwa brancha to nr zadania, a każdy commit to nazwa zadania, ewentualnie po enterze jakieś swoje uwagi. I na tym branchu zadaniowym nie miało być żadnych odgałęzień.
Ten "Starszy kolega" to najwyraźniej był niewiele starszy, albo za bardzo nie zna się na używaniu git-a.
Obecnie pracuje repo gdzie takie coś: git branch -r | wc -l
zwraca wartość 3685
i nikomu to nie przeszkadza. Nikt nie odczuwa estetycznego dyskomfortu.
W bitbucket zablokowane są branche o nazwie: master
relase-*
tylko bitbucket może je modyfikować (i ja) po zatwierdzeniu przez CI.
Wszyscy w team-ie używają takiego wzorca nazywania brancha, mimo że nie ma żadnej narzuconej polityki nazywania branchy (tylko branche związane z release są chronione):
feature/jira/PR-123/FeatureDesription/user
bug/jira/PR-125/BugDesription/user
private/user/ExperimentNameNoJira
- Rejestracja:prawie 10 lat
- Ostatnio:około 2 godziny
- Postów:2363
Pomijając sensowność udostępniania commita wybranym osobom, to technicznie:
Git jest rozproszonym systemem kontroli wersji i to możesz wykorzystać w następujący sposób:
a) wystawiasz wybranym kolegom wjazd po ssh do swojej piaskownicy (co może wygenerować większy problem dla Ciebie "Jak mam to zrobić" :p) i kontrolujesz ten wjazd przez dodanie kluczy publicznych wybrańców
b) wybrańcy mogą dodać remote'a wskazującego na Twoją piaskownicę
c) możesz wskazać, którego brancha mają sobie przejrzeć
Jest to podobne do tego co pisał @Riddle , natomiast to nie Ty pushujesz do remote'a, a wybrańcy robią pulla.

- Rejestracja:ponad 14 lat
- Ostatnio:około 2 godziny
- Postów:2064
- zakładasz na github nowe repozytorium
- robisz push na te nowe repozytorium (co tam chcesz)
Jak widzę to co tutaj ludzie piszą, to trafia mnie jedna myśl: "Nie ufacie swoim zespołom". Całe te zabawy z commitami, branchami, nazwami tasków w jirze, etc. to wszystko są objawy niskiego zaufania do ludzi z którymi pracujecie ;| Tak się nie da robić dobrego softu.



programiści nie wprowadzają zmian na które nie ma taska w jirze, co jest bardzo słabe
- nie, to jest bardzo dobre, bo nikt przypadkiem robiąc poprawkę nie stworzy np. XSSa
git branch -r | wc -l
zwraca wartość3685
i nikomu to nie przeszkadza.