Tôi đã sử dụng hệ thống kiểm soát phiên bản "truyền thống" để duy trì kho mã nguồn trên các dự án trước đây. Tôi đang bắt đầu một dự án mới với một nhóm phân phối và tôi có thể thấy được lợi thế khi sử dụng một hệ thống phân tán. Vì tôi hiểu SourceSafe, CVS và Subversion; bạn có đề xuất gì cho người mới tham gia Git?Tôi nên biết gì về Git trước khi bắt đầu sử dụng?
Trả lời
Git - SVN Crash Course là cách đọc tốt để bắt đầu.
Trước khi thực hiện các tệp, chúng phải được thêm vào vùng dàn trang Git — mỗi lần. Để làm điều này dễ dàng hơn, có một tùy chọn -a
để thêm tất cả các tệp được theo dõi, như trong git commit -a
.
Ngoài ra, khi bạn làm git diff
, nó chỉ cho bạn thấy sự khác biệt giữa bản sao làm việc của bạn và những gì trong khu vực dàn dựng. Nếu bạn đã thêm các tệp đã thay đổi vào khu vực dàn dựng của mình, git diff
có thể không báo cáo gì dù bạn có thể có các thay đổi không được cam kết. Sử dụng git status
để xem chắc chắn.
Thực hiện tutorial
Sau đó, vui chơi với nó. Làm một dự án đồ chơi nhỏ để có được một cảm giác cho nó trước khi bạn bắt đầu làm việc với codebase chính của bạn.
Tôi sử dụng gitk rất nhiều để xem lại các bản vá và theo dõi cách mã thay đổi từ cam kết cam kết.
Tôi đã thử git trong công ty của mình. Chúng tôi đã sử dụng CVS và muốn chuyển sang công cụ VC tốt hơn. Chúng tôi đã chọn git như một công cụ tốt nhất cho các phiên bản tệp (Linus on GIT). Hiệu suất của nó chỉ là tốt nhất và nó là một công cụ thực sự tuyệt vời cho một nhà phát triển, người hiểu được điều khiển phiên bản chuyên sâu nhưng nó là một cơn ác mộng đối với một nhà phát triển thường xuyên sử dụng điều khiển phiên bản trong nền và không muốn học cách sử dụng ít hơn vài giờ (và họ cần học nhiều)
Ngoài ra, việc tích hợp với các IDE hiện tại còn rất xa để hoàn thành. Toàn bộ khả năng sử dụng là vấn đề khá lớn đối với nhà phát triển thông thường.
Sau khi thí điểm với 4 nhà phát triển, chúng tôi đã chuyển sang Subversion là đơn giản nhất mặc dù không phải là công cụ vượt trội.
Ngoài ra còn có giải pháp thương mại cho Subversion nhiều địa (mà chúng tôi đã không cố gắng nêu ra, nhưng sẽ cố gắng trong thời gian ngắn) - WANDisco
Theo kinh nghiệm của riêng tôi di chuyển từ Subversion để Git, điều quan trọng nhất không phải là những gì bạn cần để tìm hiểu, nhưng những gì bạn cần để bỏ học. Kiểm soát phiên bản phân phối là rất khác với Kiểm soát phiên bản tập trung. CVC là một tập con của DVC, vì vậy bạn chỉ có thể làm CVC trong một công cụ DVC, nhưng nó sẽ phức tạp hơn với một công cụ CVC.
Cố gắng không tìm hiểu CVC và tham gia tư duy DVC. Nếu bạn chỉ cần làm CVC trong một công cụ DVC, bạn sẽ chỉ bị thất vọng bởi tất cả các phức tạp thêm vào và bạn sẽ không nhận ra những gì mà thêm phức tạp là mua cho bạn về tính linh hoạt.
Tất cả các công cụ DVC có tuyệt vời và hỗ trợ rất mạnh cho phân nhánh và hợp nhất. Sử dụng nó. Tất cả lịch sử có sẵn trong tầm tay bạn. Sử dụng nó. (Ví dụ: không bao giờ nhận xét mã, chỉ cần xóa mã. Bạn luôn có thể lấy lại mã, ngay cả trên máy bay không có kết nối internet.)
Một khía cạnh rất quan trọng của Git: tất cả các công cụ khác đều có quy trình làm việc ít nhiều được xác định. Git thì không. Git là bộ công cụ xây dựng dòng công việc DVCS. Điều này làm cho đôi khi khó có thể biết phải làm gì: bạn phải thiết kế và thực hiện quy trình làm việc của riêng mình (gợi ý: sử dụng nhiều kịch bản lệnh shell). Tôi sử dụng Git hơn một năm nay và tôi vẫn chưa hoàn toàn tìm ra quy trình làm việc của mình.
- 1. Tôi nên sử dụng gì cho git user.name?
- 2. Khi tôi đang sử dụng Git, tôi có nên rebase trước khi hợp nhất không?
- 3. Khi nào bạn nên bắt đầu sử dụng Memcached?
- 4. Không biết gì về ... khi sử dụng ri Array - Ruby
- 5. Khi nào tôi nên sử dụng git add?
- 6. Bán mã nguồn, Tôi nên biết gì về số
- 7. Mongodb: Những điều cần biết trước khi sử dụng?
- 8. Tôi nên biết gì khi chuyển từ MIPS sang x86?
- 9. Biết mã GIT trước khi cam kết?
- 10. Tôi có nên sử dụng ruby 1.9.2 khi bắt đầu dự án Rails 3.0 mới không?
- 11. Bạn định làm gì trước khi bắt đầu viết mã?
- 12. Khi nào/tại sao tôi nên bắt đầu sử dụng cơ sở dữ liệu?
- 13. Bắt đầu từ đầu cho v2.0. Tôi có nên tiếp tục sử dụng repo git hiện có hoặc bắt đầu một bản mới không?
- 14. Học Clojure - Tôi nên biết gì về Java và nhiều hơn nữa
- 15. AppDelegate là gì và làm cách nào để biết khi nào nên sử dụng?
- 16. Tôi cần một API. Tôi nên bắt đầu từ đâu?
- 17. Khi nào tôi nên sử dụng require() và khi nào nên sử dụng define()?
- 18. Trong Jira Agile khi nào tôi nên sử dụng "Story" và khi nào tôi nên sử dụng "Cải tiến"
- 19. Tôi nên bắt đầu tìm hiểu về SAP như thế nào?
- 20. Tôi có nên bắt đầu với Python 3.0 không?
- 21. git di chuyển một nhánh bắt đầu về phía trước trong cây
- 22. Tôi nên biết điều gì khi phát triển dịch vụ web WCF tương thích?
- 23. Tôi có nên xin phép trước khi gửi thông tin sử dụng ẩn danh không?
- 24. Tôi có nên sử dụng "hasClass" trước "addClass" không?
- 25. Tôi cần biết gì về C++ 0x?
- 26. Khi nào tôi nên sử dụng AQL?
- 27. Bắt đầu Cassandra - Sử dụng Kundera? Thứ gì khác?
- 28. Khi nào tôi nên sử dụng SynchronousQueue
- 29. git rebase và git push: không nhanh về phía trước, tại sao lại sử dụng?
- 30. Tôi có nên kiểm tra tăng :: shared_ptr hoặc std :: shared_ptr trước khi tôi sử dụng không?
... trừ khi bạn chỉ huy "git diff foo/bar.file" –