Zajmuję się tworzeniem strony internetowej w php w localhost, a kiedy moduły się kończą, przesyłam ją do chmury, aby moi przyjaciele mogli ją przetestować w wersji alfa.
Jak zachować się rozwija, mam wiele plików i tracę poczucie który plik mam edytowane lub zmienione itd. Słyszałem o czymś jako „kontroli wersji” do zarządzania wszystkim, ale nie jestem pewien, jak to działa.
Moje pytanie brzmi więc: czy jest dostępny łatwy sposób / usługa / aplikacja do śledzenia wszystkich zmian / zmian / nowych plików i zarządzania nimi podczas tworzenia witryny. Jak tylko skończę z modułem, chcę załadować go do chmury (korzystam z usługi Amazon Cloud). Jeśli coś się dzieje, do nowych plików, może chcę wrócić do starego pliku. A może za jednym lub dwoma kliknięciami mogę zobaczyć pliki, które edytowałem lub zmieniłem od czasu ostatniego przesłania?
źródło
Odpowiedzi:
Zarządzanie konfiguracją oprogramowania , którego częścią jest Kontrola wersji , jest nieco bardziej skomplikowane niż śledzenie zmian w plikach, choć na pewno możesz zacząć od tego. Ale czy czytać artykuły Wikipedii umieszczony powyżej wraz z samouczka Joel Spolky w sprawie Mercurial .
Na początek wybierz jeden z Mercurial, GIT lub Bazaar, w tej kolejności, i zainstaluj go wraz z narzędziami do IDE i systemu operacyjnego (wolę Mercurial z HGE dla Eclipse).
Dzięki plikom w repozytorium możesz poznać różnice między dowolnymi dwiema wersjami pliku lub katalogu albo kompletnym projektem ( hg diff ), zobaczyć historię zmian ( hg hist ) i wycofać zmiany ( hg w górę -r ).
Dobrym pomysłem jest otagowanie repozytorium (tag hg ) przed opublikowaniem kodu, aby łatwo było wrócić do dokładnie tego, co opublikowałeś w celu poprawek lub porównań.
Jeśli chcesz eksperymentować z innej linii rozwoju, zrób to w prosty oddziału przez klonowanie głównego repozytorium ( hg clone ) i nie zepchnięcie aż eksperyment jest rozstrzygający. To tak proste, jak to ma inny katalog roboczy dla eksperymentu.
Jeżeli eksperyment jest dla nowej, zmodernizowanej wersji następnie klon, a następnie gałąź ( hg branch ), więc można zachować wszystkie kopie repozytoriach zaktualizowanych jeden eksperyment bez zakłócania innych.
Linus Torvalds (który zajmuje się dziesiątkami tysięcy plików i milionami linii kodu w swoich projektach) wygłosił w Google rozmowę na temat tego, dlaczego narzędziem nie może być CVS, SVN, ani żadna z wielu darmowych i komercyjnych ; to jest bardzo dużo warte oglądania.
źródło
I lose track of which file I've edited or changed
. HGE też może to zrobić, nie użyłem tego..xcodeproj
plik, który Xcode wykorzystuje w projektach na iOS, powinien być uważany za coś, co każe Mercurialowi zignorować, czy też ważne jest, aby zachować synchronizację pliku?Gorąco polecam Git. Dowiedz się więcej o tym tutaj: https://lab.github.com/
Jeśli nie podoba Git, istnieją inne rozwiązania kontroli wersji. Możecie sprawdzić SVN.
źródło
Jest to po prostu ?, użyć DVCS
Choć wydaje się to sprzeczne z intuicją, rozproszony system kontroli wersji (mercurial, git, bazaar) lepiej jest zacząć od systemu scentralizowanego (svn, cvs). Dlaczego ?, go zainstalować na komputerze i uruchomić repozytorium lokalnie, i to wszystko. Na scentralizowanego systemu, takich jak svn trzeba ustawić się, klient i serwer ... a potem, trzeba być łączenia się z serwerem, aby zapisać zmiany.
Z DVCS to ty, lokalnym repozytorium, a jeśli chcesz, możesz skorzystać z usługi jak bitbucket.org lub github.com.
IMHO, mercurial jest bardziej przyjaznym i równie zdolnym DVCS na początek.
Czy są jeszcze inni ?, użyj DVCS!
Korzystanie z DVCS do pracy z zespołem ma wiele zalet , najważniejsze w przeciwieństwie do scentralizowanego systemu polega na tym, że nie ma żadnych wyścigów zatwierdzania, a to dlatego, że technicznie, repozytorium każdej osoby jest oddziałem i kiedy udostępniasz swoje zmiany te gałęzie są dla ciebie scalone, a ty nawet tego nie zauważysz, co oznacza, że zamiast mieć taką historię wersji, w której ludzie kierują swoją pracą w linii prostej:
W końcu masz coś takiego, w którym każdy po prostu popełnia ad hoc:
Każdy z nich martwi się o swoją pracę podczas wersjonowania (tj. Nie ściga się o zatwierdzenie) i nie martwi się o połączenie z serwerem tylko do zatwierdzenia.
Powodzenia
źródło
Krótko mówiąc, istnieje wiele alternatyw, wśród których Subversion (SVN) i Git wydają się najbardziej popularne (dlatego najłatwiej jest znaleźć rozwiązania w Internecie).
Oba się różnią. SVN jest prostszy, ale Git nie wymaga posiadania serwera na początek - możesz kontrolować wersję lokalnie.
Zakładając, że masz Linuksa i chcesz zacząć używać Git:
Mam nadzieję, że to pomoże Ci zacząć.
źródło
Jak sugeruje Apalala, polecam zakup hginit . Ponieważ dopiero zaczynasz kontrolę wersji, możesz pominąć pierwszą stronę. To powinno dać ci dobre wprowadzenie, a następnie możesz pisać na SO, jeśli masz konkretne pytania.
źródło
Sprzeciwiam się opinii większości i polecam Subversion. Subversion jest łatwe w użyciu i robi wszystko, czego potrzebują ludzie i małe zespoły. To dojrzały produkt, więc każde IDE ma dla niego dobre wsparcie. Tak, nie ma wszystkich funkcji Git. (Nigdy nie korzystałem z Mercurial, więc nie będę o tym rozmawiać.) Ale większość programistów tak naprawdę nie potrzebuje tych dodatkowych funkcji.
Wiele repozytoriów? Jestem pewien, że istnieją pewne uzasadnione zastosowania, ale nigdy ich nie spotkałem.
Czy możesz dokonywać lokalnych zatwierdzeń bez dostępu do sieci? Miło jest mieć, jeśli zdarza się, że wprowadzasz kilka dyskretnych zmian i nie masz dostępu do serwera repozytorium - ale szczerze mówiąc, jak często to się zdarza?
Git ułatwia radzenie sobie z rozgałęzianiem i scalaniem. Ale dla jednoosobowego zespołu to nie jest taka wielka sprawa.
Aby uzyskać coś w skali jądra Linux - tak, użyj Git. Dla reszty z nas Subversion jest wystarczająco dobre.
źródło
Myślę, że rozproszony system kontroli wersji da sobie radę. Powszechnie sugerowanymi wyborami są Git i Mercurial (Hg). Pomocne mogą być narzędzia graficzne, dla Mercurial polecam TortoiseHg .
źródło