Tôi mới tham gia git và tôi muốn biết cách giải quyết một kịch bản rất cơ bản. Tôi đọc rất nhiều bài viết trên stackoverflow về git nhưng vẫn không thể tìm ra câu trả lời.Cách theo dõi nguồn gốc/chủ trong chi nhánh dev git của tôi
Chúng tôi có nhánh gốc/chủ từ xa mà mọi người đang làm việc. Tôi có một tính năng mà tôi muốn triển khai và có thể mất thời gian để phát triển. Trong khi đó, mọi người có thể đang kiểm tra mã nguồn gốc/chủ.
gì sẽ nhìn công việc của tôi như thế và làm thế nào tôi nên đi về việc thiết lập git branch của tôi, do nhu cầu sau:
Tôi muốn để có thể cam kết thay đổi mã để chi nhánh của tôi và đẩy họ đến một nhánh từ xa trên máy chủ của chúng tôi vì vậy tôi không mất các thay đổi trong trường hợp máy tính của tôi bị rán.
Tôi muốn cập nhật chi nhánh của mình với chi nhánh chính.
Tôi muốn giảm thiểu việc hợp nhất thông thường. Tôi thích khái niệm về git rebase vì vậy tôi muốn tối đa hóa việc sử dụng nó và do đó hợp nhất nhanh về phía trước.
Tại một thời điểm nào đó, chúng tôi sẽ phải hợp nhất chi nhánh FeatureA của tôi vào nguồn gốc/chính.
Tóm tắt:
Làm thế nào để thiết lập một chi nhánh mà kéo từ nguồn gốc/master nhưng đẩy tới nguồn gốc/MY-CHI NHÁNH?
Quy trình làm việc của tôi sẽ như thế nào?
CẬP NHẬT:
Cảm ơn bạn @ will-pragnell! Sự khác nhau giữa giải pháp của bạn và những điều sau đây là gì.
Trang này trên github đề nghị:
https://github.com/diaspora/diaspora/wiki/Git-Workflow
Để có được các bản cập nhật mới nhất từ thân cây phát triển làm một thiết lập một lần để thiết lập các GitHub repo chính như một điều khiển từ xa bằng cách nhập:
$ git remote add upstream git://github.com/diaspora/diaspora.git
$ git fetch upstream
$ git checkout master
$ git rebase upstream/master
$ git checkout 100-retweet-bugfix
[chắc chắn rằng tất cả các cam kết khi cần thiết trong ngành]
$ git rebase master
Cảm ơn bạn @ will-Pragnell! Câu hỏi của tôi được cập nhật với những điều sau đây: Sự khác biệt giữa dung dịch ur và những điều sau đây là gì. Trang này trên github đề xuất: https://github.com/diaspora/diaspora/wiki/Git-Workflow Để nhận các cập nhật mới nhất từ thân cây phát triển, hãy thiết lập một lần để thiết lập repo GitHub chính làm điều khiển từ xa bằng cách nhập: $ git remote add upstream git: //github.com/diaspora/diaspora.git, $ git fetch upstream, $ git checkout master, $ git rebase upstream/master, $ git checkout 100-retweet-bugfix, [đảm bảo tất cả được cam kết khi cần thiết trong chi nhánh], $ git rebase master – ben39
sau khi thực hiện: 'git checkout master git merge myFeature git push origin master' Tôi nhận được '! [bị từ chối] nhiều người gửi -> nhiều người gửi (không chuyển tiếp nhanh) lỗi: không thể đẩy một số lần chuyển sang 'ssh: // xxx' Để ngăn bạn mất lịch sử, các bản cập nhật không nhanh chóng bị từ chối Hợp nhất các thay đổi từ xa (ví dụ 'git pull') trước khi đẩy lại. Xem phần 'Lưu ý về chuyển tiếp nhanh' của 'git push --help' để biết chi tiết.' – ben39
Về nhận xét thứ hai của bạn - bạn có rebase lên master trước khi bạn cố gắng hợp nhất không? (Sẽ có một cái nhìn bình luận đầu tiên của bạn sau này một chút khi tôi có một khoảnh khắc rảnh rỗi - xin lỗi, siêu bận ở đây!) –