Rất thường xuyên, Git và Rails trông giống như ma thuật ... chẳng hạn như trong chương đầu tiên của cuốn sách Hướng dẫn Rails 3 , nó nói về Git:
git remote add origin git@github.com:peter/first_app.git
git push origin master
và khá nhiều người nói rằng "nó chỉ hoạt động" mà không nói quá nhiều về những gì họ đang có và bắt đầu nói về việc phân nhánh. Tìm kiếm trên mạng cho thấy rằng git remote add
để thêm một "tên ngắn", chẳng hạn như origin
, và nó cũng có thể là bất kỳ tên nào, giống như một bí danh cho một URL. Và origin
là đường dẫn thông thường nơi repo từ xa trỏ đến. (trong http://git-scm.com/book/en/Git-Basics-Working-with-Remotes trong "Thêm kho lưu trữ từ xa")
Vậy tại sao URL không phải git://git@github.com/peter/first_app.git
nhưng trong cú pháp khác - đó là cú pháp gì? Tại sao nó phải kết thúc với .git
? Tôi đã cố gắng không sử dụng .git
vào cuối và nó cũng hoạt động. Nếu không .git
, nó có thể là gì khác? Các git
trong git@github.com
có vẻ là một tài khoản người dùng trên máy chủ git?
Ngoài ra, tại sao nó cần phải dài dòng để sử dụng git push origin master
? Không thể mặc định là nguồn gốc và chủ? Tôi thấy rằng lần đầu tiên, origin master
cần thiết, nhưng sau một chỉnh sửa nhỏ và cam kết, sau đó git push
là tất cả những gì nó cần (không cần origin master
). Ai đó có thể biết những gì đang xảy ra cho một số chi tiết?
Đôi khi, nó cảm thấy giống như rất nhiều phép thuật mà không có lời giải thích ... và đôi khi người sử dụng nó rất tự tin và khi được hỏi tại sao, không thể giải thích nó và trả lời với một cái gì đó như "đó là như vậy". Đôi khi rất thực tế và thực dụng. Nó không tệ khi thực tế, nhưng có lẽ không thực tế đến mức không biết chuyện gì đang xảy ra.
git@github.com:peter/first_app.git
làscp
cú pháp kiểu cho các URL ssh trong git. Một điểm khác là theo mặc định, cấu hình ngược dòngmaster
không ảnh hưởng đến hành vigit push
trừ khi bạn đãpush.default
đặt thànhtracking
(hoặcupstream
trong các phiên bản sau) - Tôi đã viết một bài blog về nguồn gây nhầm lẫn này: longair.net/blog/2011 /