Tôi đã có hợp đồng để viết một phần của chương trình. Người viết phần khác là ở một thành phố khác. Tôi muốn tìm một cách thuận tiện để gửi thay đổi qua lại. Vì những lý do khác, tôi muốn học cách sử dụng git như một VCS phân tán và thay đổi email qua lại. (Tôi đã làm việc với SCCS, RCS, và PVCS trước đây, luôn luôn với khóa. Tôi muốn thúc đẩy bản thân mình để tìm hiểu làm thế nào để sử dụng tốt hơn phân nhánh & sáp nhập và không phụ thuộc vào một máy chủ trung tâm.)
Chúng ta cần phải làm sau hai nhiệm vụ (danh sách khá chuẩn):
(a) Mỗi người trong chúng ta đóng góp vào các bản sửa lỗi và các tính năng mới yêu cầu thay đổi đối với cả hai phần.
(b) Biên dịch và gói mã nhị phân cho khách hàng.
(Chúng tôi cũng cần phải làm việc riêng biệt trên các tính năng không phụ thuộc vào khác, nhưng tôi giả định rằng mọi thứ hoạt động cho công việc (a) cũng sẽ hoạt động cho điều này.)
Thông tin cơ bản: Người khác chưa bao giờ sử dụng một VCS trước đây; anh ta có chút kháng cự với ý tưởng này. Anh thậm chí còn không biết rằng họ không phải tất cả vẫn sử dụng kiểm tra khóa. Tôi cần phải hiểu tất cả mọi thứ chúng tôi làm ở độ sâu đủ để tôi có thể giúp anh ta vượt qua những điểm thô với không có nhiều thất vọng về phía anh ấy. Anh ấy cũng rất khó chịu khi lưu trữ nguồn trên máy chủ, đó là một lý do khác để thích thay đổi email. Chúng ta có thể dễ dàng mã hóa chúng.
Ngữ cảnh có thể có liên quan khác: Chúng tôi đang sử dụng Delphi trên Windows làm môi trường phát triển của mình. Thật không ngờ chúng tôi sẽ thêm một nhà phát triển khác. Chúng tôi chỉ cần gói các phiên bản của khách hàng vài lần trong một năm, nếu có. Số lượng khách hàng có thể sẽ không bao giờ vượt quá mười.
Câu hỏi:
1) Tôi có nên sử dụng dự án này để tìm hiểu các kỹ thuật cho phát triển được phân phối không? Hay là quá nhiều đến nỗi tôi chỉ nên làm một cái gì đó đơn giản hơn? Tôi không ngại dành thêm thời gian cho việc học, nhưng không quá một vài tuần.
2) Giả sử "Có" cho câu hỏi 1, chúng tôi nên sử dụng quy trình làm việc nào cho mỗi tác vụ ở trên?
3) Chương trình Windows GUI nào sẽ thực hiện tất cả các tác vụ được yêu cầu? (Tôi rất thoải mái với công cụ dòng lệnh; anh ấy không.)
Cảm ơn sự giúp đỡ của bạn.
Tôi đã viết một hướng dẫn khá chi tiết về "gitting started" cho thấy những gì tôi đã học được cho đến nay về việc sử dụng git. Đó là tại http://xorandor.com/GittingStarted nếu bạn muốn đọc nó cho đến nay. Tôi đã cố gắng viết nó cho một người mới làm quen với git, những người hiểu biết một chút nhưng không phải là rất nhiều về VCS nói chung. Tôi dự định thêm vào đó khi tôi tìm hiểu thêm.Quy trình làm việc git nào để sử dụng cho 2 nhà phát triển không cùng nằm?
Trả lời
Người khác chưa bao giờ sử dụng VCS trước đây; anh ta ít có khả năng chống lại ý tưởng .
Tôi đã tham gia đào tạo và hỗ trợ người dùng bị buộc phải chuyển đổi từ an toàn nguồn sang lật đổ. Đã có một số lượng đáng ngạc nhiên của sức đề kháng người dùng. Đã hơn một năm nay và tôi vẫn thường xuyên được gọi để sửa chữa mọi thứ khi "lật đổ đã phá vỡ nội dung của tôi" (điều đó không bao giờ là trường hợp của khóa học).
Biết điều này, tôi sẽ rất do dự khi thử và giúp ai đó thực hiện chuyển đổi từ không có VCS nào sang git (có lẽ không phải là VCS thân thiện nhất). Đặc biệt là nếu họ ghét ý tưởng của một VCS. Nếu bạn không thể ở đó để giúp họ ở bàn làm việc của họ.
Vì vậy, hãy xem xét: một số nguyên nhân chỉ là nguyên nhân bị mất. Trừ khi bạn sẽ làm việc với người này trong một thời gian dài, bạn có thể tốt hơn khi thiết lập một kho lưu trữ chỉ cho chính mình. Bạn có thể cho phép anh ta gửi email các tệp đã thay đổi cho bạn và ngược lại. Ít nhất git sẽ giúp bạn dễ dàng xem những tệp nào đã thay đổi kể từ điểm tích hợp cuối cùng.
Bạn có nên sử dụng trình projet này để học git không? Tôi sẽ nói có.
Bên cạnh inherent benefits of source control, tôi sử dụng git có lợi thế là có bản sao đầy đủ của kho lưu trữ trên mỗi hệ thống nhà phát triển.
Một điều tôi sẽ làm trên đầu mỗi trang có một kho lưu trữ, là để mỗi bạn đồng bộ hóa với một máy chủ trung tâm mỗi ngày hoặc lâu hơn.
Các quy trình làm việc sẽ đi như:
- Bạn thực hiện thay đổi để kho git địa phương của bạn thường xuyên như bạn có thể.
- Tại một khoảng thời gian cố định (mỗi ngày một lần, sau khi sửa lỗi hoặc tính năng lớn, vv) đẩy kho lưu trữ của bạn lên kho lưu trữ trung tâm nằm trên máy chủ lưu trữ web hoặc nhà cung cấp dịch vụ lưu trữ git khác (aka, GitHub).
- Luôn kéo các thay đổi từ kho lưu trữ trung tâm thay vì kho lưu trữ của nhau. Bạn có thể xử lý kho lưu trữ trung tâm như repo phát hành của bạn, và điều này sẽ tránh nhầm lẫn như repo (của bạn hoặc của anh ta) là mới nhất.
Tôi biết rằng toàn bộ điểm của hệ thống kiểm soát phiên bản được phân phối không có repo trung tâm, nhưng tôi thực sự thích có thêm bản sao ngoại vi đó. Nếu bất cứ điều gì nó cung cấp cho bạn thêm một bản sao của kho lưu trữ cho mục đích sao lưu.
Theo như git trên cửa sổ, tôi sẽ kiểm tra số illustrated guide to running git on windows. Việc xây dựng trong git-gui lá rất nhiều để được mong muốn, nhưng nó là chức năng và có thể sử dụng.
Ngoài ra, vì đối tác của bạn là người mới để kiểm soát nguồn, tôi khuyên bạn nên xuất sắc nhất của Eric Sink Source Control HOWTO. Nó cung cấp cho bạn rất nhiều thông tin tuyệt vời về cách cách kiểm soát nguồn.
Tôi khá mới trong git, nhưng có lẽ cách nhanh nhất để bắt đầu là:
Với git bạn có thể tạo hai kho lưu trữ trên máy tính của mình.
Một cho công việc của bạn và thứ hai cho tác phẩm mà anh ấy gửi cho bạn.
Có nice tutorial to start (như đã đề cập bởi Nick)
Công cụ này là tốt nếu bạn làm việc với các cửa sổ/lật đổ trước TortoiseGit
Quan điểm của tôi: không bắt đầu để dạy cho anh ta cho đến khi bạn cảm thấy rất tốt trong git, làm cho một cả repos/chi nhánh trong máy tính của bạn.
Tôi chỉ định cấu hình autosetuprebase trên mỗi thiết bị và chỉ bắt đầu với một thiết lập khá đơn giản.
Chọn các xung đột bạn nhận được - đó là những thay đổi mà nếu không sẽ bị mất.
Trải nghiệm của tôi, Git chưa được hỗ trợ tốt trên Windows.
Để tương tự, nhưng IMHO thân thiện với người dùng hơn DVCS, hãy xem Mercurial (a.k.a. Hg). Nó có một Tortoise-client và một công cụ dòng lệnh khá thân thiện.
Ngoài ra còn có Visual Studio và các plugin Eclipse cho Mercurial (tôi cũng nghĩ NetBeans). Chúng hoạt động khá tốt và là một add-on tuyệt vời cho các công cụ khác. (Stuff được thêm/xóa/đổi tên tự động và nhiệm vụ đồng bộ hóa cơ bản (đẩy/kéo) hoạt động tốt.)
bạn có nghe về tortioise-git không? – Avram
Yup, nhưng khi tôi xem nó (nov 2008) nó gần như không hoàn chỉnh như biến thể của hg. Ngoài ra, các nhà phát triển chính là một chút khó chịu với sự thiếu hỗ trợ cộng đồng/phản hồi tại thời điểm đó. Dường như có nhiều điều đang xảy ra ngay bây giờ, xem http://repo.or.cz/w/TortoiseGit.git. – Macke
Có vẻ như git đã tích hợp sẵn emailed patches functionality. Tôi đã không sử dụng nó mặc dù, vì vậy tôi không thể nói cho usefullness của nó.
Vì nhà phát triển khác không quen thuộc với các khái niệm kiểm soát sửa đổi, tôi khuyên bạn nên bắt đầu từ từ.
Luồng công việc được đề xuất của tôi bao gồm một kho lưu trữ ở bên cạnh bạn rằng bạn có thể "git clone". Chỉ cho anh ta cách anh ta có thể tìm nạp các thay đổi từ đó và yêu cầu anh ấy gửi lại các thay đổi của anh ấy cho bạn. Chỉ cho anh ta cách git có thể thay đổi thư xung quanh. Bằng cách này, bạn sẽ là một trong những người sẽ phải lo lắng về việc sửa đổi xung đột mà có xu hướng là một nguồn gây nhầm lẫn lớn cho những người chưa bao giờ sử dụng hệ thống kiểm soát phiên bản trước đây.
Bạn đang viết nó với một người không bao giờ sử dụng kiểm soát phiên bản trước đây? Đáng sợ! –