2012-07-29 36 views
13

Tôi muốn một số phản hồi về luồng công việc của tôi vì đây là lần đầu tiên tôi sử dụng nó và mặc dù đọc các bài viết khác nhau và câu hỏi Stack Overflow, tôi không chắc chắn rằng quy trình của tôi là chính xác. Đây là quy trình công việc hiện tại của tôi (lưu ý rằng tôi đang sử dụng ứng dụng Github cho Windows cho tất cả các tương tác git của tôi):Quy trình làm việc Github dành cho nhà phát triển đơn

  1. Quyết định tính năng tiếp theo là tôi sẽ triển khai.
  2. Tạo chi nhánh có tên mô tả phù hợp cho đối tượng địa lý. Tôi làm điều này bằng cách nhấp vào nút nhánh trong Github cho Windows và nhập tên mới.
  3. Viết một số mã.
  4. Cam kết những thay đổi đó đối với chi nhánh mới của tôi.
  5. Viết một số mã khác.
  6. Cam kết những thay đổi đó đối với chi nhánh mới của tôi.
  7. Tôi đã hoàn tất việc triển khai tính năng này vì vậy tôi muốn hợp nhất các thay đổi của mình về chi nhánh chính. Vì vậy, tôi nhấp vào nút 'quản lý' bên dưới tiêu đề chi nhánh.
  8. Hợp nhất chi nhánh mới vào nhánh chính.
  9. Xóa chi nhánh mới.

Tôi khá hài lòng với quy trình này cho đến bước 7 tại thời điểm đó, tôi hơi bối rối. Tôi nghĩ rằng sự nhầm lẫn của tôi nằm trong thực tế là tôi đang cố gắng sử dụng ứng dụng Github cho Windows thay vì sử dụng dòng lệnh. Ứng dụng dường như làm mọi việc dễ dàng hơn nhưng có một chút ngắt kết nối trong sự hiểu biết của tôi giữa một số lệnh/hướng dẫn mà tôi đã đề cập và các hành động bạn sẽ thực hiện trong ứng dụng.

Hãy để tôi hỏi một số câu hỏi cụ thể:

  1. là công việc của tôi thực sự đúng? Nếu không, có gì sai với nó và làm thế nào tôi có thể cải thiện nó?
  2. Tôi có nên "xuất bản" các thay đổi của mình cho chi nhánh mới không? Sự hiểu biết của tôi là điều này tương đương với việc thực hiện git push tại dòng lệnh. Điều đó có đúng không? Nếu vậy tôi nghĩ rằng tôi sẽ chỉ muốn làm điều đó khi tôi hoặc là hoàn thành việc thực hiện các tính năng hoặc nó ở trong trạng thái tốt?
  3. Tôi có nên xóa chi nhánh khi tôi đã hợp nhất nó vào nhánh chính hoặc nó sẽ bị bỏ quên mãi mãi không?
  4. Tôi có cần xuất bản nhánh chính khi tôi đã hoàn thành việc hợp nhất hoặc là nội dung ẩn này không?
  5. Tôi đôi khi không thể thực hiện việc hợp nhất và nhận được thông báo lỗi này:

    Không thể sáp nhập

    Không thể sáp nhập 'test' vào 'thầy'. Bạn có thể cần phải mở một trình bao và gỡ lỗi trạng thái của repo này.

Khi điều này xảy ra trước đây, tôi đã có thể chuyển sang chi nhánh tổng thể và hợp nhất các chi nhánh mới vào ngành thạc sĩ tuy nhiên rằng không có công trình dài hơn. Cho dù chi nhánh nào tôi đang ở, tôi không thể hợp nhất hai nhánh. Cả hai đều đồng bộ và tôi đã xuất bản tất cả các thay đổi từ nhánh thử nghiệm của tôi. Tôi nên gõ gì vào trình bao để tìm hiểu lý do tại sao tôi không thể hợp nhất các nhánh?

Để tham khảo, đây là những liên kết chính đã nhắc quá trình của tôi:

  1. Scott Chacon on the workflow at Gitub
  2. Git workflow for a single developer on a local repository
  3. Git workflow for a single user

Trả lời

4

Những gì bạn đang mô tả âm thanh như một công việc phân nhánh phổ biến mà hoạt động rất tốt ngay cả đối với nhiều nhà phát triển trên cùng một cơ sở mã. Nó hoàn toàn được bao phủ bởi git flow, đây là phần mở rộng của dòng lệnh git để tự động hóa các bước nhất định. Đó là giá trị kiểm tra ra.

Tôi không phải là một fan hâm mộ lớn của các công cụ giao diện người dùng cho git. Tôi đang sử dụng dòng lệnh hầu hết thời gian. Vì vậy, tôi không có kinh nghiệm với GitHub cho Windows. Nhưng tôi đặt cược vấn đề của bạn xảy ra vì sự hợp nhất của bạn không còn chuyển tiếp nhanh nữa. Điều này sẽ yêu cầu một bước hợp nhất thủ công là (afaik) không được công cụ bảo vệ.

Không có lý do chính đáng nào để giữ các nhánh xung quanh sau khi hợp nhất chúng vào thượng nguồn của bạn. Nhưng một là để theo dõi những gì cam kết đã đi vào một tính năng nhất định. Tôi sẽ đề nghị để xuất bản các chi nhánh nếu bạn quyết định giữ chúng. Bạn không phụ thuộc vào mã nằm xung quanh trên máy của bạn. Để giữ cho các chi nhánh không làm cho kho lưu trữ của bạn lớn hơn nhiều bằng cách này nhưng gây ô nhiễm cảnh. Hầu hết thời gian, các cam kết hiện diện trong nhánh thượng nguồn của bạn.

Bạn sẽ phải công bố (push) chi nhánh tổng thể của bạn sau khi sáp nhập vào.

Để làm quen với các công cụ dòng lệnh git Tôi đề nghị bắt đầu với Introduction to Git and GitHub từ những kẻ GitHub và làm theo tài liệu tham khảo liên kết của họ để biết thêm chi tiết .

Hy vọng rằng sẽ giúp

+0

Cảm ơn - rất tốt khi biết tôi đang đi đúng hướng! Tôi vẫn còn một chút bối rối bởi các chi nhánh mặc dù và tôi nghĩ rằng đó là nơi đau đầu sáp nhập của tôi đến từ. Khi tôi tạo một nhánh mới trong Github cho Windows, tôi có nên tạo một thư mục mới ở đâu đó không? Bởi vì nếu không thì tôi không chỉ chỉnh sửa mã trong nhánh chính của mình? – Stu

+0

Git lưu trữ mọi thứ trong một loạt các vùng đồng bằng trong thư mục .git. Vì vậy, khi bạn tạo một nhánh mới, nó giống như bạn đang làm việc trên một bản sao của nhánh master/nhân bản của bạn. Nhưng tất cả trong cùng một thư mục (cam kết một số thay đổi và lật nhánh và mở lại tệp của bạn để xem). Theo dõi chi nhánh nào bạn đã kiểm tra, vì có thể dễ dàng bắt đầu viết nhiều thứ, quên bạn không chuyển nhánh và bạn kết thúc bằng master thay vì chi nhánh tính năng của bạn. Đó là nơi stashes đến rất tiện dụng. – yellottyellott

+0

Xin lỗi vì đã không chấp nhận điều này như câu trả lời cho câu hỏi của tôi sớm hơn, một số cách tôi dường như đã bỏ lỡ nhận xét cuối cùng của bạn đã trả lời tất cả các câu hỏi của tôi. Cảm ơn rất nhiều! – Stu

Các vấn đề liên quan