Hướng Dẫn Sử Dụng Git Cơ Bản

      182

Bài viết này vẫn lí giải các bạn áp dụng git cơ bạn dạng bên trên hệ quản lý Linux qua các cách áp dụng lệnh git sau đây giúp cho chúng ta có thể từ tìm hiểu với từ bỏ học tập Linux cơ phiên bản dễ dàng rộng.

Bạn đang xem: Hướng dẫn sử dụng git cơ bản

1. Giới thiệu về Git

Giới thiệu về Git

Git là một khối hệ thống điều hành và kiểm soát phiên bản phân tán mã nguồn mnghỉ ngơi phổ cập hiện thời. Nó hoàn toàn có thể hỗ trợ cho họ giữ lại những phiên phiên bản của không ít lần chuyển đổi vào mã nguồn và có thể thuận tiện Phục hồi lại dễ ợt với người không giống bao gồm quyền truy vấn mã mối cung cấp bọn họ có thể coi những biến đổi ở từng phiên bạn dạng. Cơ chế tàng trữ của Git là nó sẽ tạo một snapshot bên trên từng tập tin với thư mục sau khoản thời gian commit, từ bỏ kia bạn cũng có thể tái sử dụng lại một hình họa chụp như thế nào kia.

Một số định nghĩa cơ bản bắt buộc vào Git:

Tlỗi mục làm việc là thư mục mà bạn bao gồm ngôn từ bắt buộc git thống trị.Một commit là ảnh chụp cục bộ nội dung thỏng mục làm việc của chúng ta và nó được theo dõi bằng cách sử dụng hàm 40 character SHA1 hash.Index là vị trí ảnh chụp nhanh khô những đổi khác của tlỗi mục thao tác làm việc của công ty trước khi chúng ta commit. Nó khá quan trọng đặc biệt vị nó nằm trong lòng thư mục thao tác cùng một commit khác của bạnBranch trong git nó là 1 bé trỏ mang lại một commit ví dụ.2. Cài đặt Git

Gói git gồm trong phần lớn những bạn dạng phân pân hận Linux. Để khám nghiệm xem gói git có khả dụng trên khối hệ thống của không bằng cách chạy lệnh sau:

localhost ~># git --version-bash: git: comm& not foundNếu gói git không tồn tại bên trên khối hệ thống của công ty, bạn cũng có thể thuận tiện setup nlỗi sau:

Đối với bạn dạng phân phối Debian/Ubuntu:

Chạy lệnh sau nhằm thiết lập gói git:

root
ubuntuserver:~# apt-get install gitReading package lists... DoneBuilding dependency treeReading state information... Donegit is already the newest version (1:2.đôi mươi.1-2ubuntu1)....Đối cùng với bạn dạng phân pân hận RHEL/CentOS:

Chạy lệnh dưới để tiến hành cài đặt gói git:

localhost ~># yum -y install gitLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile* base: mirrors.viethosting.com* extras: mirrors.viethosting.com* updates: mirrors.viethosting.com base | 3.6 kB 00:00:00extras | 3.4 kB 00:00:00updates | 3.4 kB 00:00:0...Để chất vấn xem gói git thiết đặt thành công xuất sắc chưa bọn họ chạy lệnh sau:

localhost ~># git --versiongit version 1.8.3.13. Sử dụng Git3.1. Git indexGit index

Index nằm trong lòng thỏng mục thao tác làm việc của công ty với các commit của bạn. Khi tiến hành git add thì các bạn coppy một hình họa chụp nkhô nóng của thỏng mục thao tác vào index, tiếp theo khi chạy lệnh git commit thì chúng ta đã xào luộc điều tương tự trường đoản cú index nhằm tạo thành một commit new.

Lệnh git status là một trong những lệnh khôn cùng có lợi vị nó mang đến chúng ta biết sự khác hoàn toàn giữa tlỗi mục làm việc, index với commit trước đó.

Như ví dụ sau bọn họ thêm file img vào thỏng mục thao tác kế tiếp chạy lệnh git status chúng ta vẫn thấy sự không giống biệt:

localhost ~># git statusOn branch masterYour branch is up khổng lồ date with "origin/master".Changes not staged for commit: (use "git add ..." to lớn update what will be committed) (use "git checkout -- ..." to discard changes in working directory)modified: huong-dan-su-dung-git-co-ban/index.mdUntracked files: (use "git add ..." khổng lồ include in what will be committed)huong-dan-su-dung-git-co-ban/img/no changes added to lớn commit (use "git add" and/or "git commit -a")Lệnh git diff cũng như như git status, tuy vậy nó cho biết sự biệt lập giữa các commit không giống nhau và thân tlỗi mục làm việc cùng index. git diff --cached đến chúng ta thấy sự khác biệt trong index đối với commit sau cuối.

Git diff

3.2. Branch

Branch là 1 trong bé trỏ cho những commit không giống nhau. khi triển khai commit thứ 1 vào repository thì git sẽ tạo nên ra một branch có tên là master. Vì cụ hồ hết lần commit sau sẽ được cấp dưỡng branch master cho tới lúc biến hóa branch.

Mô hình minc họa Khi họ làm việc trên một project sẽ bao gồm một commit từ trước:

Git index

Trong git thì bạn cũng có thể tự do sinh sản một branch mới bọn họ thực hiện lệnh git branch với trỏ mang lại commit hiện nay tại

Ví dụ: Chúng ta phải sinh sản một branch có tên chạy thử họ chạy lệnh sau:

localhost project_euler># git branch testKết quả sẻ như hình mặt dưới:

Branch

Branch có tên test đã được tạo ra, gõ lệnh git branch chúng ta đang thấy bao gồm 2 branch thương hiệu master cùng thử nghiệm nhưng lại bé trỏ vẫn cho biết thêm địa điểm thao tác ngơi nghỉ branch master. Branch kiểm tra khởi đầu từ bỏ commit tiếp sau (kế thừa master trường đoản cú commit tiếp theo trnghỉ ngơi về trước).

Branch test

Để có thể thay đổi với bắt đầu thao tác trên một branch nhất thiết họ rất cần được triển khai lệnh dưới đây git checkout .

ví dụ như chúng ta đề nghị chuyển hẳn sang làm việc trên branch mang tên thử nghiệm chúng ta chạy lệnh như sau:

localhost project_euler># git checkout testSwitched khổng lồ branch "test"

3.3. Remote Repository

Mục đích của vấn đề thực hiện remote repository là được cho phép bất cứ ai ở gần như địa điểm khác nhau cũng hoàn toàn có thể đóng góp các biến hóa new đến repository.

Để kiểm tra thương hiệu của remote họ chạy lệnh sau:

localhost project_euler># git remote -voriginhttps://github.com/ngocdang1999/project_euler (fetch)originhttps://github.com/ngocdang1999/project_euler (push)Chúng ta thấy repository lúc bọn họ sẽ clone gần như chọn cái tên là origin, và mỗi repository đều sở hữu nhì trạng thái:

fetch: Dùng để mang dữ liệu về từ bỏ server.push: Dùng để gửi dữ liệu lên VPS.

Qua trên đây giúp bọn họ đọc về lệnh git push origin master là bạn cũng có thể push những đổi khác bên trên mã mối cung cấp ở trang bị lên remote thương hiệu là origin cùng với branch master.

Lúc họ ao ước biến hóa thương hiệu remote mặc định (origin) qua một tên khác cho chúng ta dễ ợt cai quản.

Ví dụ: Chúng ta phải đổi tự thương hiệu origin thanh lịch tên thietkewebhcm.com.vn thì sẽ thực hiện như sau:

localhost project_euler># git remote rename origin danglocalhost project_euler># git remote -vdanghttps://github.com/ngocdang1999/project_euler (fetch)danghttps://github.com/ngocdang1999/project_euler (push)Sau lúc đang thay tên remote thì Khi họ tiến hành push họ đề xuất tiến hành lệnh như sau git push master nhằm có thể push các biến hóa bên trên mã nguồn nghỉ ngơi lắp thêm lên remote repository.

Nếu bọn họ mong mỏi thêm 1 remote để rất có thể rước dử liệu hoặc thêm những chuyển đổi bên trên mã nguồn máy lên remote thì bọn họ áp dụng lệnh git remote add .

Xem thêm: Cách Kiểm Tra Win Đã Active Chưa, Cách Kiểm Tra Win 10 Đã Active Chưa

Ví dụ: khi họ bắt buộc remote một repository cùng đặt tên cho remote này là dang họ làm cho như sau:

localhost project_euler># git remote add thietkewebhcm.com.vn https://github.com/ngocdang1999/webdang.github.io.gitlocalhost project_euler># git remote -vthietkewebhcm.com.vnhttps://github.com/ngocdang1999/webdang.github.io.git (fetch)thietkewebhcm.com.vnhttps://github.com/ngocdang1999/webdang.github.io.git (push)danghttps://github.com/ngocdang1999/project_euler (fetch)danghttps://github.com/ngocdang1999/project_euler (push)

3.4. Merge

Trong một dự án chúng ta đang có nhiều thành viên tmê mệt gia triển khai thì mọi cá nhân đã phụ trách một trách nhiệm riêng rẽ dẫu vậy đến lúc kết thúc thì họ cần phải thực hiện đồng điệu hóa những trọng trách của tất cả các member. git gồm thiên tài hỗ trợ cho bạn có thể tiến hành dịch rời những nhỏ trỏ nhánh cần thiết để rất có thể xong xuôi dự án công trình.

Hình minh họa dưới giúp chúng ta merge commit kiểm tra vào commit master với bao hàm cả hồ hết biến hóa trường thọ trong test:

Merge

Lưu ý: Chúng ta phải kết thúc commit trước lúc thử merge.

3.5. Sử dụng git

3.5.1. Sử dụng git trên khối hệ thống cục bộ

Sử dụng git nhằm chế tạo ra project hay là 1 tlỗi mục vẫn gồm sẵn để nhtràn vào git.

Để rất có thể khởi tạo ra một kho cất từ bỏ thỏng mục gồm sẳn đầu tiên bọn họ buộc phải đề nghị chạy lệnh sau:

localhost ~># mkdir trang web &và cd websitelocalhost website># git initInitialized empty Git repository in /root/website/.git/Tiếp theo triển khai sản xuất câu chữ bằng cách sử dụng lệnh emang đến nhằm thêm nội dung vào file index.html.

localhost website># eđến "Hello, world!" > index.htmlChạy lệnh sau nhằm thêm câu chữ vào git index:

localhost website># git add index.htmlThực hiện nay commit để đổi khác commit mới:

localhost website># git commit -m "Newweb" Newwebsite Committer: root Your name & gmail address were configured automatically basedon your username & hostname. Please check that they are accurate.You can suppress this message by setting them explicitly: git config --global user.name "Your Name" git config --global user.gmail you
example.comAfter doing this, you may fix the identity used for this commit with: git commit --amend --reset-author 1 tệp tin changed, 1 insertion(+) create mode 100644 index.html

3.5.2. Sử dụng git trên trang bị chủ

Để bước đầu một kho lưu trữ git mới trên sever bọn họ chạy lệnh sau:

localhost ~># mkdir mywebsite.gitlocalhost ~># cd mywebsite.gitlocalhost mywebsite.git># git init --bare --sharedInitialized empty shared Git repository in /root/mytrang web.git/Tạo hook của bạn sẽ đánh giá mã vào thư mục website thực tế của doanh nghiệp.

localhost mywebsite.git># cát > hooks/post-receive#!/bin/shGIT_WORK_TREE=/path/to/webroot/of/mytrang web git checkout -flocalhost trang web.git># chthủ thuật +x hooks/post-receive

3.5.3. Quay lại khối hệ thống viên bộ

Thêm thỏng mục từ xa vào cấu hình cục bộ:

localhost website># git remote add web ssh://root
192.168.70.188/home/user/mywebsite.gitĐẩy văn bản của kho lưu trữ tổng thể vào kho từ xa:

localhost website># git push web +master:refs/heads/masterThe authentiđô thị of host "192.168.70.188 (192.168.70.188)" can"t be established.ECDSA key fingerprint is SHA256:YIGfm3ouDO4t5tzyksDxs1J1CB5hlOMdctL21iNNcRM.ECDSA key fingerprint is MD5:74:53:22:9f:b0:be:e8:e5:f5:fa:83:6e:63:a8:62:c5.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added "192.168.70.188" (ECDSA) khổng lồ the list of known hosts.Permission denied (publickey,gssapi-keyex,gssapi-with-mic).fatal: Could not read from remote repository.Please make sure you have the correct access rights& the repository exists.Sau đó, biến đổi đông đảo sản phẩm công nghệ toàn cục và nhằm cài đặt lên các biến hóa, chỉ việc thực hiện:

localhost website># git push webwarning: push.mặc định is unset; its implicit value is changing inGit 2.0 from "matching" to lớn "simple". To squelch this messagevà maintain the current behavior after the default changes, use: git config --global push.mặc định matchingTo squelch this message and adopt the new behavior now, use: git config --global push.default simpleSee "git help config" và search for "push.default" for further information.(the "simple" mode was introduced in Git 1.7.11. Use the similar mode"current" instead of "simple" if you sometimes use older versions of Git)Permission denied (publickey,gssapi-keyex,gssapi-with-mic).fatal: Could not read from remote repository.Please make sure you have sầu the correct access rightsvà the repository exists.secondarydns website># git remote -vwebssh://root
192.168.70.188/home/user/mywebsite.git (fetch)webssh://root
192.168.70.188/home/user/mytrang web.git (push)4. Các lệnh thường được sử dụng vào gitĐể có thể tạo ra một repository new họ chạy lệnh sau:

git initlúc họ hy vọng xào luộc (clone) một repository bên trên sản phẩm công nghệ toàn bộ họ xúc tiến lệnh bên dưới:

git clone /đường-dẫn-đến/repository/lúc một repository nghỉ ngơi trên một máy chủ không giống thì họ yêu cầu thực hiện một loại lệnh như sau:

git clone username
ipadd:/đường-dẫn-đến/repositoryVí dụ: Chúng ta bắt buộc thực hiện xào nấu một repository từ bỏ máy chủ "https://github.com/ngocdang1999/project_euler" chúng ta chạy lệnh sau:

localhost ~># git clone https://github.com/ngocdang1999/project_eulerCloning inlớn "project_euler"...remote: Enumerating objects: 157, done.remote: Total 157 (delta 0), reused 0 (delta 0), pack-reused 157Receiving objects: 100% (157/157), 414.60 KiB | 324.00 KiB/s, done.Resolving deltas: 100% (46/46), done.Sử dụng lệnh git nhằm thêm những chuyển đổi vào chỉ mục index áp dụng lệnh mặt dưới:

git add git add *Ví dụ: Thực hiện nay thêm 1 file "/test-git/chạy thử.txt" vào repository bọn họ vừa sao chép về sau đó thêm nó vào chỉ mục index:

localhost project_euler># cdlocalhost ~># cd project_euler/localhost project_euler># mèo > test-git/thử nghiệm.txtHello thietkewebhcm.com.vnlocalhost project_euler># git add *Để commit gần như đổi khác các chỉ mục index chúng ta chạy lệnh sau:

git commit -m "Ghi crúc Commit"Ví dụ: Sau Lúc chúng ta thực hiện thêm một tệp tin vào chỉ mục index tiếp theo sau chúng ta bắt buộc commit các đổi khác triển khai như sau:

localhost project_euler># git commit -m "Them thu muc test-git vao repository" Them thu muc test-git vao repository Committer: root Your name và gmail address were configured automatically basedon your username và hostname. Please check that they are accurate.You can suppress this message by setting them explicitly: git config --global user.name "Your Name" git config --global user.email you
example.comAfter doing this, you may fix the identity used for this commit with: git commit --amend --reset-author 1 tệp tin changed, 1 insertion(+) create mode 100644 test-git/thử nghiệm.txtKhi bọn họ yêu cầu push các chuyển đổi lúc những biến đổi của họ vẫn nằm ở HEAD của bạn dạng sao toàn thể đã thao tác làm việc. Để có thể push những chuyển đổi cho repository remote họ thực hiện nhỏng sau:

git push origin masterVí dụ: Khi đang commit thành công bọn họ đang push những biến hóa lên repositorhệt như bên dưới:

localhost project_euler># git push origin masterUsername for "https://github.com": nguyenngocdangabcd
tin nhắn.comPassword for "https://nguyenngocdangabcd
email.com
github.com":Counting objects: 5, done.Compressing objects: 100% (2/2), done.Writing objects: 100% (4/4), 349 bytes | 0 bytes/s, done.Total 4 (delta 1), reused 0 (delta 0)remote: Resolving deltas: 100% (1/1), completed with 1 local object.To https://github.com/ngocdang1999/project_euler 9240ce8..a176e65 master -> masterNlỗi hiệu quả trên bọn họ vẫn triển khai push thành công lên repository.

Lưu ý: Tgiỏi thay đổi master bởi bất kể nhánh nào mà lại bạn có nhu cầu đẩy đa số biến hóa cho.

Để hoàn toàn có thể tạo một nhánh new có tên là "test" với chuyển hẳn sang nhánh kia từ master triển khai nlỗi sau:

localhost project_euler># git checkout -b testSwitched to a new branch "test"lúc bọn họ đề xuất trở lại nhánh master xuất phát từ 1 nhánh khác thực hiện nlỗi sau:

localhost project_euler># git checkout masterSwitched khổng lồ branch "master"Để rất có thể xóa một nhánh cùng nhánh kia có tên là "test" chúng ta chạy lệnh sau:

localhost project_euler># git branch -d testDeleted branch thử nghiệm (was a176e65).Để cập nhật một repository toàn bộ của người tiêu dùng với commit tiên tiến nhất chúng ta chạy lệnh sau:

localhost project_euler># git pullAlready up-to-date.Nếu bọn họ mong hủy tất cả thay đổi và các commit toàn cục, về fetch lịch sử hào hùng gần đây duy nhất tự sever và trỏ mang đến nhánh master toàn bộ như sau:

localhost project_euler># git fetch originlocalhost project_euler># git reset --hard origin/masterHEAD is now at a176e65 Them thu muc test-git vao repositorySau Khi họ thay đổi thương hiệu của một thư mục con trong thư mục thao tác làm việc hiện tại họ bắt buộc chạy lệnh git add -u để git góp họ update tự động hóa thương hiệu đang thay đổi.

Lệnh git status hiển thị tâm trạng của cây làm việc, bao hàm sự biệt lập thân chỉ mục cùng cam đoan ngày nay.

Lệnh git log giúp chúng ta có thể hiển thị nhật ký commit.

localhost project_euler># git logcommit a176e651e7dac92296b29ce3f9a5f6a0f66d5c94Author: root Date: Wed Sep 11 18:29:18 2019 +0700 Them thu muc test-git vao repositorycommit 9240ce8fc3bc65bf672d570f46546069d8380ebdAuthor: ngocdang1999 Date: Mon Nov 26 20:34:32 2018 +0700 1commit 470b0b4131fe7d7cbf2df8c601aed0c543b9fa34Author: ngocdang1999 Date: Fri Oct 12 00:20:26 2018 +0700 Rephối id Teamviewer...Lệnh git clean dùng để loại bỏ những tập tin không xẩy ra quan sát và theo dõi khỏi thư mục thao tác làm việc.

Chỉ xác định trí bug nhtràn vào họ gồm một số trong những tùy lựa chọn sau:

Đánh vệt địa điểm bước đầu chạy thực hiện lệnh sau: git bisect start.Đánh dấu địa chỉ giỏi thực thi lệnh sau: git bisect good.Đánh lốt vị trí bị lỗi triển khai lệnh sau: git bisect bad.Chạy tự động: git bisect run.

Dùng nhằm dịch rời hoặc xóa file chúng ta chạy lệnh mặt dưới:

Lệnh git mv dùng để làm dịch chuyển file.Lệnh git rm dùng làm xóa file.5. Lời kết

Qua bài xích bên trên, giúp cho họ biết phương pháp sử dụng lệnh git để điều hành và kiểm soát phiên bạn dạng phân tán mã nguồn mlàm việc. Đồng thời hỗ trợ cho chúng ta cũng có thể bảo quản những phiên phiên bản của toàn bộ những lần đổi khác có thể thuận lợi Phục hồi lại tiện lợi. Dường như chúng ta cũng hoàn toàn có thể hỗ trợ quyền truy cập mã nguồn cho tất cả những người trong team một biện pháp dể dàng.