git: Ý nghĩa của một mục phụ


5

Theo lời khuyên của một người bạn của tôi, tôi bắt đầu học git . Tôi đọc hướng dẫn sử dụng (các phần cơ bản) và tôi nghĩ hiểu rõ nhất về các cam kết, các nhánh, thiết lập lùi, tiến, v.v. nhưng khi nói đến việc đồng bộ hóa kho lưu trữ cục bộ với điều khiển từ xa, tôi cảm thấy hơi lạc lõng.

Tôi hiện đang thử nghiệm git trên `testreposeective của tôi. Tôi đã thêm tệp và thư mục cục bộ, sau đó cập nhật kho lưu trữ bằng trang web bằng cách thêm tệp bổ sung. Sau đó, tôi đã tìm nạp các tệp, các cam kết được hợp nhất và cuối cùng tôi đã đồng bộ hóa các kho lưu trữ từ xa và cục bộ. Bây giờ, tôi đã có nhật ký này:

*   5cf86124752ed91bde703bca0133b904b356c430 (HEAD -> master, origin/master, origin/HEAD) Merge branch 'master' into HEAD
|\
| * 510cb404d9a7d062739da7960546187436941e8e Add folder_local1/{folde_local1_program1, folde_local1_program2, folde_local1_program3}
* | d7461473939ee6663535650fec08962b30865c6e Delete folder_server2_program4.java
* | 010aba572c7424e81446e151433805ec6d2d92ea Delete folder_server2_program3.java
* | a30e5a06923935edbcb362afb6cf5dc169ec5a61 Delete folder_server2_program2.java
* | 89dc387d36a0370844bf90bc028e9b335de2b0b5 Delete folder_server2_program1.java
* | f80348f8fa02960cd20f349a862b7a31700a0fdd Delete x
* | 12deed224204c2ef5ab60c92f39682628fb23ab1 Add files via upload
* | f00f6b3d4feecd00f1258f32456e4bb5e2b4af4b Create x
* | 0e7965394aa9d36a17fefb2b52c032627c1e8e28 Add files via upload
* | 7d594dcdcd4b169a0563f63070c8975a5ee1bc27 Add files via upload
* | c078101bae4a3413700242025f2db9c4aeb9b1d8 Add files via upload
* | 9dab1a30425e4fc57e57770deb475dea341ab136 Update folder_server1_program1.java
* | 41b6ecad4759fdadcda8955046582178693612ae Create folder_server1_program1.java
|/
*   be40ad56685d5f836b88de960feb2d7b881e6f93 Merge branch 'master' of github.com:FranekW/testrepository
|\
| * 2790ba683034812c83da1310993e6326f91da42d Create README.md
* | 9caf9163056ccfc0b06cdd28704dee912f1643b5 Add folder1/{folder1_program1, folder1_program2, folder1_program3}
|/
* 376fe054b95134d7953cfafe3b70931ff036fbb8 Initial commit

Linh hồn của tất cả, origin/masterorigin/HEADđều có màu đỏ. Thứ hai, tôi không hiểu những gì đang origin/HEADlàm ở đó? Tôi mặc dù CHÍNH là một con trỏ trỏ đến cam kết hiện tại của tôi. Ai đó có thể giải thích nếu nhật ký là ok hoặc tôi đã làm hỏng quá nhiều. Và cũng làm thế nào để hiểu `nguồn gốc / ĐẦU.

Cảm ơn nhiều

Câu trả lời:


14

ĐẦU có một vài cách sử dụng bổ sung.

Do HEAD là con trỏ của cam kết "hiện tại", nó cũng là cam kết bạn nhận được theo mặc định khi nhân bản kho lưu trữ đó. Vì vậy, trong các kho lưu trữ từ xa , mặc dù chúng không có bàn làm việc, HEAD vẫn có thể tồn tại như một con trỏ tới nhánh "mặc định" - cái mà bản sao sẽ tự động kiểm tra.

(Ví dụ: một số dự án trỏ ĐẦU của repo "master" vào nhánh 'dev' hoặc 'ổn định' thay vì master, để mọi người mặc định nhận được thứ gì đó hữu ích hơn.)


Tuy nhiên, trong trường hợp của bạn, sau khi nhân bản, Git giữ <remote>/HEADref cho nó bởi vì nó còn sử dụng nữa : nó xác định các công cụ Git nhánh sẽ thử nếu chỉ tên từ xa được chỉ định.

Ví dụ, thông thường bạn không thể làm git log origin, vì refs / remote / origin / là một thư mục, do đó không thể trỏ đến bất cứ đâu. Tuy nhiên, Git sau đó tự động tìm nguồn gốc / ĐẦU và cung cấp cho bạn bất kỳ nhánh nào trỏ đến.

(Điều này có thể giải quyết bằng cách sử dụng git remote set-head origin ...cho bất kỳ chi nhánh nào bạn thấy thuận tiện.)


Chào. Nó có ý nghĩa hơn một chút với tôi bây giờ nhưng tôi sợ tôi cần đọc nhiều hơn về các chi nhánh từ xa, phân phối git và git. Cảm ơn
Celdor 28/03/2017
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.