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à originlà đườ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.gitnhư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 .gitvào cuối và nó cũng hoạt động. Nếu không .git, nó có thể là gì khác? Các gittrong git@github.comcó 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 mastercần thiết, nhưng sau một chỉnh sửa nhỏ và cam kết, sau đó git pushlà 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.gitlàscpcú 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òngmasterkhông ảnh hưởng đến hành vigit pushtrừ khi bạn đãpush.defaultđặt thànhtracking(hoặcupstreamtrong 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 /