2008-11-20 47 views
12

Tôi đang phát triển một số phần mềm chấm điểm trường học và quyết định sử dụng Github để lưu trữ dự án. Sau khi xây dựng một số mã trên hộp Ubuntu của tôi, tôi đã đẩy nó vào Github và sau đó nhân bản nó xuống MacBook Pro của tôi. Sau khi chỉnh sửa mã trên MBP, tôi đã đẩy nó trở lại Github. Sáng hôm sau tôi đã cố gắng cập nhật repo của tôi trên hộp Ubuntu với git pull và nó đã cho tôi tất cả các loại rắc rối.Whats cách tốt nhất để làm việc với Github và nhiều máy tính là gì?

Whats cách tốt nhất để làm việc trong tình huống này là gì? Tôi không muốn ngã ba repo của riêng tôi và tôi không thực sự muốn gửi cho mình email hoặc kéo yêu cầu. Tại sao tôi không thể đối xử với Github như một bậc thầy và đẩy/kéo từ nó lên tất cả các bản repos cá nhân của tôi trên các máy tính khác nhau?

+0

Bạn đã sao chép repo từ github vào hộp Ubuntu của mình trước khi thử kéo từ Github? –

+0

Bạn có thể cập nhật bằng ý nghĩa của "tất cả các loại sự cố" không? Bạn có gặp sự cố khi hợp nhất các thay đổi trong đó không? – mipadi

+0

Tôi tạo ra repo trên hộp Ubuntu của tôi và đẩy nó vào Github. Tôi không nghĩ rằng tôi đã nhân bản nó trở lại vào hộp Ubuntu của tôi từ Github. Điều đó có cần thiết không? Và khi tôi nói đủ loại rắc rối, tôi có nghĩa là tôi nhận được một số thông báo lỗi. Cuối cùng tôi đã sử dụng lệnh 'commit -f' và nó hoạt động. Sorta. –

Trả lời

9

Tôi cho rằng vấn đề của bạn là máy mà bạn đã tạo repo lần đầu tiên bị trục xuất khi bạn cố gắng phát hành lệnh git pull.

Khi bạn sao chép kho lưu trữ git hiện tại (như bạn đã làm trên máy thứ 2 của mình, MacBook Pro), bạn sẽ tự động thiết lập để các lệnh git pull của bạn tự động hợp nhất điều khiển từ xa với các thay đổi cục bộ của bạn.

Tuy nhiên, khi bạn tạo một repo ban đầu và sau đó chia sẻ nó trên một kho lưu trữ từ xa, bạn phải phát hành một vài lệnh để làm cho mọi thứ tự động như một bản repo nhân bản.

# GitHub gives you that instruction, you've already done that 
# git remote add origin [email protected]:user_name/repo_name.git 

# GitHub doesn't specify the following instructions 
git config branch.master.remote origin 
git config branch.master.merge refs/heads/master 

Các hướng dẫn sau đây cấu hình git tương lai git pull từ repo này sẽ tự động hợp nhất tất cả các thay đổi từ xa.

Sau đây là một chút quảng cáo tự xấu hổ. Nếu bạn sử dụng Ruby, tôi đã tạo một công cụ dựa trên Ruby cho phép bạn xử lý tất cả những thứ này với các nhánh git remote. Công cụ này được gọi là, không ngạc nhiên, git_remote_branch :-)

Nếu bạn không sử dụng Ruby, công cụ của tôi có thể sẽ là quá phức tạp để cài đặt. Những gì bạn có thể làm là nhìn vào an old post on my blog, nơi mà hầu hết các công cụ grb có thể làm cho bạn được hiển thị một cách rõ ràng. Whip ra tập tin ghi chú git của bạn :-)

+1

Đây chính xác là những gì tôi đang tìm kiếm. Tôi đang sử dụng Ruby, nhưng tôi đang cố gắng tìm hiểu cách của tôi xung quanh Git là tốt và tôi nghĩ rằng làm điều đó "khó khăn" có lẽ là tốt nhất ngay bây giờ. :) –

+0

Đó chính xác là điểm của git_remote_branch. Mỗi khi nó chạy một lệnh thay mặt bạn, nó sẽ in ra các lệnh mà nó đang chạy cho bạn bằng màu đỏ. Ngoài ra, nó có thể được sử dụng như một cheatsheet với lệnh giải thích: grb giải thích tạo new_branch (thay vì lệnh bình thường grb create new_branch) :-) – webmat

+1

“GRB: Nó không chỉ đứng cho Gamma Ray Burst nữa.” –

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