Git – Sơ lược Remote Repository và Git

Và ở phần đó, bạn có thấy mình kêu các bạn gửi dữ liệu lên repository bằng cách dùng lệnh git push origin master
sau khi commit không? Cái master
là tên branch mà mình sẽ không nói ở bài này, nhưng cái origin
trong đoạn đó chính là tên remote repository. Mặc định khi clone một repository thì nó tự đặt tên là origin
.
Để kiểm tra tên remote, bạn có thể gõ lệnh git remote -v
.
$
git remote -v origin https://github.com/thachphamblog/hoc-git.git (fetch) origin https://github.com/thachphamblog/hoc-git.git (push)Bạn đang đọc: Git - Sơ lược Remote Repository và Git
Trong đó bạn có thể thấy cái repository mình đã clone đều được đặt tên là origin
, và mỗi repository bạn có hai đều có hai hành động là fetch (lấy dữ liệu về từ server) và push (gửi dữ liệu lên server).
Nhìn lại đoạn lệnh git push origin master
ở trên, điều đó có nghĩa là bạn gửi tất cả các thay đổi trên mã nguồn ở máy bạn lên remote tên là origin
với branch master
.
Table of Contents
Đổi tên remote
Nếu bạn không thích tên origin
thì có thể đổi tên nó lại nó bằng tên khác cho dễ quản lý nếu như bạn có nhiều remote trong một dự án với lệnh git remote rename tên_cũ tên_mới
. Ví dụ mình cần đổi từ origin
sang thach
thì sẽ đổi như sau:
$
git remote rename origin thach$
git remote -v thach https://github.com/thachphamblog/hoc-git.git (fetch) thach https://github.com/thachphamblog/hoc-git.git (push)
Bây giờ khi commit hay push bạn có thể gõ git push thach master
để gửi mã nguồn lên remote repository này.
Thêm một remote
Trường hợp bạn cần thêm một cái remote để lấy dữ liệu khi cần thì có thể sử dụng lệnh git remote add tên_remote URL
. Ví dụ mình cần remote một repository và đặt tên nó là inuit thì sẽ viết như sau:
$
git remote add unuit https://github.com/thachpham92/inuit.css-web-template$
git remote -v thach https://github.com/thachphamblog/hoc-git (fetch) thach https://github.com/thachphamblog/hoc-git (push) inuit https://github.com/thachpham92/inuit.css-web-template (fetch) inuit https://github.com/thachpham92/inuit.css-web-template (push)
Sau đó nếu bạn muốn lấy dữ liệu từ cái inuit
kia về thì chỉ cần sử dụng lệnh git fetch inuit
.
$
git fetch inuit warning: no common commits remote: Counting objects: 94, done. remote: Total 94 (delta 0), reused 0 (delta 0), pack Unpacking objects: 100% (94/94), done. From https://github.com/thachpham92/inuit.css-web-te * [new branch] master -> inuit/master
Lưu ý là lệnh git fetch
nó chỉ lấy về và lưu vào database của Git trên máy chứ không được gộp vào repository của bạn. Để gộp vào bạn có thể gõ thêm lệnh git merge inuit
, trong đó inuit
là tên remote.
Còn nếu bạn muốn nó lấy về trực tiếp mà không cần gộp thì sử dụng lệnh git pull tên_remote
, tuy nhiên mình khuyến khích bạn nên gộp vào branch khi cần và nhớ cẩn thận trong việc gộp, tốt nhất nên tạo thư mục mới trong thư mục làm việc của bạn rồi vào đó mà lấy về.
Sự khác nhau giữaclone
, fetch
và pull
Có thể giờ đây bạn đã biết được 3 lệnh để lấy tài liệu về từ repository đó là git clone, git fetch và git pull. Nhưng cả ba loại đều là lấy tài liệu, thế sự khác nhau của nó là gì ?
git clone
Lệnh này sẽ sao chép hàng loạt tài liệu trên repository và sao chép luôn những thiết lập về repository, tức là nó sẽ tự động hóa tạo một master branch trên máy tính của bạn. Lệnh này chỉ nên sử dụng khi bạn cần tạo mới một Git mới trên máy tính với hàng loạt tài liệu và thiết lập của một remote repository .
git pull
Lệnh này sẽ tự động lấy toàn bộ dữ liệu từ remote repository và gộp vào cái branch hiện tại bạn đang làm việc.
git fetch
Lệnh này sẽ lấy hàng loạt tài liệu từ remote repository nhưng sẽ được cho phép bạn gộp bằng tay thủ công vào một branch nào đó trên thư mục Git ở máy tính .
Tạm thời bạn nên hiểu thế, ở bài branch bạn sẽ hiểu sâu hơn .
Các loại giao thức của Remote Repository
Chúng ta không chỉ liên kết với một remote repository qua giao thức HTTP hay HTTPS mà còn hoàn toàn có thể chọn nhiều giao thức khác, dưới đây là một vài giao thức remote repository .
Local Repository
Giao thức này nghĩa là bạn kết nối tới một repository nào đó trên chính máy tính của bạn và URL của giao thức sẽ có dạng /path/repository/
.
HTTP Repository
Giao thức thông dụng nhất cũng như dễ hiểu nhất, thường được sử dụng nếu bạn dùng các dịch vụ remote repository như Github hay Assembla, nó sẽ bao gồm định dạng http://domain.com/repository.git
hoặc https://domain.com/repository.git.
SSH Repository
Giao thức này thường được dùng trên các nhu cầu tạo một server repository riêng và kết nối thông qua giao thức SSH. Đường dẫn của giao thức này sẽ có dạng là [email protected]:/path/repository.git
. Ở phần cuối serie mình sẽ hướng dẫn bạn cách tạo một repository server riêng và nó là lựa chọn rất tốt nếu bạn làm việc nhóm mà không cần phụ thuộc vào các dịch vụ như Github hay Assembla.
Lời kết
Trong bài này chắc bạn đã hoàn toàn có thể thấy được Git linh động như thế nào khi được cho phép bạn lấy tài liệu từ một remote repository hoặc nhiều repository khác nhau. Mặc khác, mình cũng muốn giải đáp cho những bạn có vướng mắc cái origin trên câu lệnh là gì vì trong những bài sau mình sẽ còn dùng khá nhiều câu lệnh có chứa origin trong đó nữa .
4.7 / 5 – ( 3 bầu chọn )
Source: https://mbfamily.vn
Category: Tin tổng hợp