Cài đặt git server trên window
Mục lục Git - GitHub Show Khi làm việc với Git nói riêng hay với các VCS nói chung thì hầu hết (>90%) các thao tác làm việc là ở local (ở máy client) với Local Repository ví dụ như các việc commit, xem lại lịch sử ... Khi có nhu cầu chia sẻ, hoặc làm việc nhóm, hoặc đơn giản hơn làm việc ở nhiều máy (ở văn phòng, ở nhà ...) thì lúc đó sẽ sử dụng đến Remote Repository, nó đơn giản là một Repository lưu ở phía Server. Git Server đơn giản là máy chủ có cài đặt dịch vụ Git, cho phép tạo ra các Repository, ví dụ GitHub chính là một máy chủ Git, có thể tạo ra một Repository trên nó thì đó là Remote Repository. Sau đó, ta có thể chép (clone) Remote Repository về máy thành Local Repository để làm việc và khi cần lại cập nhật lên Remote .. Sử dụng GitHub là cách nhanh chóng để có được một Repository (miễn phí thì Repository ở chế độ public, có phí thì có thể thiết lập là private). GitHub sẽ trình bày ở phần sau, ở đây sẽ hướng dẫn tạo ra một Git Server riêng (không phải chạy nền Web Git).
Các Video: Sử dụng Git, GitHub Cài đặt để có Git ServerĐể có được Git Server cần làm hai việc 1 Cài Git trên máy Server, 2 Cài đặt SSH cấu hình để user kết nối đến Server được bằng SSH (Có sử dụng SSH Key là tốt nhất). 1) Cài đặt Git trên ServerĐể cài đặt làm đúng như hướng dẫn trong phần giới thiệu về Git Trên Server Linux chạy lệnh sudo apt install git-allTrên Server Linux - CentOs chạy lệnh Trên Windows Server tải phiên bản Git phù hợp tại Git Download về và chạy bộ cài đặt Bằng cách trên đã cài đặt Git, ở giao diện dòng lệnh (Windows Server hoặc Linux Server) gõ lệnh sau để xem Git đã có chưa git --version2) Cài đặt OpenSSH trên ServerVì sẽ cấu hình để có được các Remote Repository được clone và cập nhật (push, pull ...) thông qua giao thức SSH nên cần cài đặt nó. Để cài đặt làm theo hướng dẫn trong bài viết: OpenSSH trên Server Linux và Windows Tóm lại sau bước này bạn cần có một user/pass để kết nối được đến Server bằng SSH (tốt nhất dùng SSH key thay cho password). Chú ý: Khi làm việc với nhiều Server khác nhau chứa Remote Repository, trên Windows với mỗi user/server có thể thiết lập thông số riêng (cổng, file SSH Key ...) để kết nối SSH bằng cách khai báo trong file C:\Users\UserName\.ssh\config, ví dụ: Host domain.com - username User username Hostname domain.com PreferredAuthentications publickey IdentityFile "C:\sshkey\id_rsa1" Host 192.168.1.10 - username User Administrator Hostname 192.168.1.10 Port 2222 PreferredAuthentications publickey IdentityFile "C:\sshkey\id_rsa2"Với cấu hình trên khi Git truy cập đến Server có địa chỉ domain.com với tên đăng nhập là username thì sẽ dùng cổng mặc định 22 và sử dụng SSH lưu tại C:\sshkey\id_rsa1 Truy cập đến Server có địa chỉ 192.168.1.10 với tên đăng nhập là username thì sẽ dùng cổng 2222 và sử dụng SSH lưu tại C:\sshkey\id_rsa2 Tạo Remote Repository1 Chuẩn bị một tài khoản user của hệ thống Linux (Windows) dùng để tạo hệ thống Git, cho phép truy cập tới Server bằng SSH. Nếu muốn tạo user mới trên Linux CentOs, ví dụ user tên là gitusername làm như sau: sudo adduser gitusernameĐặt password cho user sudo passwd gitusernameSau các lệnh này hệ thống đã có user với tên là gitusername và thư mục mặc định của user này là /home/gitusername/ 2 Đăng nhập hệ thống với user muốn sử dụng, ví dụ trên Linux lệnh sau sẽ chuyển user là gitusername sau đó chuyển đến thư mục của user su gitusername cd ~3 Tạo thư mục chứa Remote Repository, ví du thư mục đặt tên là myproject.git, sau đó di chuyển vào thư mục đó để thực hiện lệnh Git 4 Gọi lệnh Git để thiết lập thư mục myproject là nơi lưu trữ Remote Repository git init --bare #Initialized empty Git repository in /home/gitusername/myproject/Sau lệnh đó đã có một Remote Repo, địa chỉ để chia sẻ, làm việc với Remote Repository này là :myproject.git #hoặc gitusername@IP:myproject.gitBây giờ Remote Repository này đã sẵn sàng để các máy khách clone, cập nhật ... Thiết lập để làm việc với Remote RepositoryNgay sau khi khởi tạo ra một Remote Repository với địa chỉ ví dụ :myproject.git, thì việc đầu tiên từ một Local Repository cần kết nối tới nó và push dữ liệu đầu tiên Từ Local Repository gõ lệnh kiểm tra xem nó đang ánh xạ đến Remote Repository nào git remoteNếu chưa thiết lập cho nó một Remote Repository với câu lệnh git remote add với cú pháp như sau: git remote add name_remote addr_remoteTrong đó name_remote là một cái tên do bạn tự đặt ví dụ như: origin, abc, xyz ... addr_remote địa chỉ của Remote Repository. Ví dụ: git remote add origin :myproject.gitSau lệnh đã thiết lập trong Local Repository có một Remote Repository có tên là origin với địa chỉ kết nối :myproject.git. Gõ lại lệnh git remote -v để xem nó liệt kê ra. Vì Remote Repository mới khởi tạo trên Server nên cập nhật cho nó dữ liệu đầu tiên bằng lệnh git push với tham số chỉ ra là tên Remote Repository (origin) và nhánh cập nhật (master - tìm hiểu về nhánh branch sau, ở đây chỉ cần biết luôn có 1 nhánh là master) git push origin masterTừ đây chính thức Remote Repository bắt đầu hoạt động, từ Local Repository bạn có thể cập nhật lên (push), lấy dữ liệu về (pull, fetch) ... Hoặc từ một máy khác, hay lúc khác cần bản sao Remote Repository về máy để tạo ra một Local Repository thì dùng lệnh: git clone :myproject.gitNó sẽ clone về máy và thiết lập luôn dự án tải về có Remote Repository với tên là origin Một số lệnh cơ bản làm việc với Remote Repository
Sự khác nhau của git fetch và git pullHai lệnh này đều lấy thông tin từ Remote cập nhật vào Local, tuy nhiên có sự khác nhau lớn như hình dưới: Như sơ đồ trên thì ta thấy khi git fetch nó cập nhật thông tin từ Remote Repository vào Local Repository nhưng không ảnh hưởng đến các file code trong thư mục làm việc, còn khi git pull nó cập nhật cả thư mục làm việc của Local (thư mục chứa file code), có nghĩa các file code sẽ cập nhật theo Remote Mục lục Git - GitHub |