Hướng dẫn sử dụng git cơ bản

Bài viết này đang hướng dẫn chúng ta áp dụng git cơ bản bên trên hệ quản lý điều hành Linux qua các giải pháp áp dụng lệnh git sau đây hỗ trợ cho bạn cũng có thể trường đoản cú tìm hiểu với từ bỏ học Linux cơ bản dễ ợt 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 trong hệ thống điều hành và kiểm soát phiên bạn dạng phân tán mã mối cung cấp msinh hoạt phổ cập hiện nay. Nó hoàn toàn có thể giúp cho bọn họ lưu lại các phiên phiên bản của rất nhiều lần đổi khác vào mã mối cung cấp cùng rất có thể dễ ợt khôi phục lại dễ dãi và fan không giống có quyền truy vấn mã nguồn chúng ta có thể xem các biến hóa ở từng phiên phiên bản. Cơ chế tàng trữ của Git là nó sẽ tạo một snapshot bên trên mỗi tập tin cùng tlỗi mục sau khi commit, trường đoản cú đó bạn có thể tái sử dụng lại một hình họa chụp như thế nào đó.

Một số quan niệm cơ phiên bản phải trong Git:

Tlỗi mục thao tác làm việc là thỏng mục mà lại các bạn gồm ngôn từ đề xuất git quản lý.Một commit là ảnh chụp toàn cục câu chữ tlỗi mục làm việc của doanh nghiệp với nó được theo dõi và quan sát bằng phương pháp sử dụng hàm 40 character SHA1 hash.Index là địa điểm ảnh chụp nhanh các biến đổi của thư mục thao tác làm việc của người tiêu dùng trước khi họ commit. Nó hơi đặc biệt quan trọng bởi vì nó nằm trong lòng thư mục thao tác làm việc và một commit khác của bạnBranch vào git nó là một trong những bé trỏ cho một commit cụ thể.2. Cài đặt Git

Gói git có trong phần nhiều những phiên bản phân phối hận Linux. Để soát sổ xem gói git gồm khả dụng bên trên hệ thống của không bằng phương pháp chạy lệnh sau:

localhost ~># git --version-bash: git: comm& not foundNếu gói git không có trên hệ thống của khách hàng, chúng ta cũng có thể dễ dàng thiết đặt như sau:

Đối cùng với bản phân phối Debian/Ubuntu:

Chạy lệnh sau để 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 với phiên bản phân pân hận RHEL/CentOS:

Chạy lệnh dưới nhằm thực hiện thiết đặ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...Để đánh giá xem gói git cài đặt thành công không 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 giữa thư mục thao tác làm việc của công ty cùng những commit của doanh nghiệp. lúc triển khai git add thì chúng ta xào luộc một hình ảnh chụp nkhô nóng của tlỗi 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ự như tự index để tạo thành một commit bắt đầu.

Lệnh git status là một trong những lệnh vô cùng bổ ích vì nó cho bọn họ biết sự biệt lập thân tlỗi mục thao tác, index với commit trước đó.

Nhỏng ví dụ sau bọn họ thêm file img vào thỏng mục thao tác tiếp nối chạy lệnh git status bọn họ đang thấy sự khác 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 -- ..." lớn 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 khổng lồ commit (use "git add" and/or "git commit -a")Lệnh git diff tương tự như nhỏng git status, tuy vậy nó cho thấy thêm sự biệt lập thân những commit khác nhau với giữa thư mục thao tác làm việc và index. git diff --cached cho bọn họ thấy sự khác hoàn toàn trong index so với commit sau cuối.

Git diff

3.2. Branch

Branch là 1 trong con trỏ đến những commit khác biệt. khi tiến hành commit thứ 1 trong repository thì git sẽ khởi tạo ra một branch có tên là master. Vì nỗ lực số đông lần commit sau sẽ tiến hành cung ứng branch master cho đến lúc chuyển đổi branch.

Mô hình minh họa Khi bọn họ làm việc bên trên một project đã bao gồm một commit từ bỏ trước:

Git index

Trong git thì bạn cũng có thể thoải mái tạo thành một branch new bọn họ áp dụng lệnh git branch với trỏ đến commit hiện tại

Ví dụ: Chúng ta yêu cầu chế tạo một branch mang tên demo chúng ta chạy lệnh sau:

localhost project_euler># git branch testKết trái sẻ nlỗi hình mặt dưới:

Branch

Branch có tên demo đã được chế tạo ra, gõ lệnh git branch bọn họ đang thấy tất cả 2 branch tên master và test dẫu vậy con trỏ vẫn cho biết khu vực làm việc ngơi nghỉ branch master. Branch thử nghiệm mở màn từ commit tiếp theo (thừa kế master tự commit tiếp sau trở về trước).

Branch test

Để rất có thể thay đổi với bắt đầu thao tác bên trên một branch khăng khăng bọn họ rất cần phải tiến hành lệnh sau đây git checkout .

lấy một ví dụ bọn họ buộc phải chuyển hẳn sang thao tác bên trên branch có tên test bọn họ chạy lệnh nlỗi sau:

localhost project_euler># git checkout testSwitched to branch "test"

3.3. Remote Repository

Mục đích của câu hỏi thực hiện remote repository là có thể chấp nhận được bất cứ ai sinh sống đa số vị trí khác biệt cũng có thể góp sức những chuyển đổi mới cho repository.

Để bình chọn thương hiệu của remote bọn 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ọ đang clone hồ hết được đặt tên là origin, và mỗi repository đều có nhì trạng thái:

fetch: Dùng để lấy tài liệu về trường đoản cú hệ thống.push: Dùng để gửi tài liệu lên server.

Qua đây giúp chúng ta gọi về lệnh git push origin master là chúng ta có thể push các đổi khác bên trên mã mối cung cấp nghỉ ngơi trang bị lên remote tên là origin cùng với branch master.

lúc bọn họ mong muốn biến hóa tên remote khoác định (origin) qua 1 thương hiệu không giống đến chúng ta dễ ợt quản lý.

Ví dụ: Chúng ta cần thay đổi tự thương hiệu origin lịch sự tên installmentsvfacr.com thì đang triển khai nlỗi 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 khi đã đổi tên remote thì khi họ tiến hành push chúng ta bắt buộc triển khai lệnh nhỏng sau git push master để có thể push những thay đổi trên mã mối cung cấp ở sản phẩm công nghệ lên remote repository.

Nếu họ hy vọng thêm 1 remote nhằm hoàn toàn có thể mang dử liệu hoặc thêm các chuyển đổi bên trên mã mối cung cấp thiết bị lên remote thì bọn họ áp dụng lệnh git remote add .

Xem thêm: Hướng Dẫn Ghi Âm Trên Máy Tính (Kèm Ảnh), Cách Ghi Âm Trên Máy Tính Đơn Giản Nhất

Ví dụ: lúc họ đề xuất remote một repository cùng đánh tên đến remote này là dang họ làm nlỗi sau:

localhost project_euler># git remote add installmentsvfacr.com https://github.com/ngocdang1999/webdang.github.io.gitlocalhost project_euler># git remote -vinstallmentsvfacr.comhttps://github.com/ngocdang1999/webdang.github.io.git (fetch)installmentsvfacr.comhttps://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ó rất nhiều member tham gia tiến hành thì mỗi cá nhân đã đảm nhiệm một nhiệm vụ riêng rẽ tuy nhiên đến lúc ngừng thì chúng ta cần được thực hiện nhất quán hóa các trọng trách của tất cả các thành viên. git tất cả tài năng hỗ trợ cho chúng ta cũng có thể tiến hành dịch chuyển các nhỏ trỏ nhánh quan trọng để có thể hoàn thành dự án.

Hình minc họa dưới giúp chúng ta merge commit thử nghiệm vào commit master và bao hàm cả phần đa chuyển đổi mãi mãi trong test:

Merge

Lưu ý: Chúng ta yêu cầu hoàn thành commit trước khi test merge.

3.5. Sử dụng git

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

Sử dụng git nhằm sinh sản project hay là 1 thỏng mục đang bao gồm sẵn để nhập vào git.

Để hoàn toàn có thể khởi chế tạo ra một kho chứa tự thỏng mục tất cả sẳn trước tiên chúng ta bắt buộc đề xuất chạy lệnh sau:

localhost ~># mkdir website &và cd websitelocalhost website># git initInitialized empty Git repository in /root/website/.git/Tiếp theo thực hiện tạo câu chữ bằng phương pháp sử dụng lệnh emang lại để thêm văn bản vào tệp tin index.html.

localhost website># emang đến "Hello, world!" > index.htmlChạy lệnh sau để thêm văn bản vào git index:

localhost website># git add index.htmlThực hiện tại commit nhằm chuyển đổi commit mới:

localhost website># git commit -m "Newweb" Newweb Committer: root Your name & gmail address were configured automatically basedon your username và hostname. Please kiểm tra 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 --amkết thúc --reset-author 1 file changed, 1 insertion(+) create mode 100644 index.html

3.5.2. Sử dụng git bên trên vật dụng chủ

Để ban đầu một kho tàng trữ git bắt đầu trên máy chủ bọn họ chạy lệnh sau:

localhost ~># mkdir mytrang web.gitlocalhost ~># cd mywebsite.gitlocalhost mywebsite.git># git init --bare --sharedInitialized empty shared Git repository in /root/mywebsite.git/Tạo hook của các bạn sẽ kiểm tra mã vào tlỗi mục website thực tế của công ty.

localhost mytrang web.git># mèo > hooks/post-receive#!/bin/shGIT_WORK_TREE=/path/to/webroot/of/mywebsite git checkout -flocalhost trang web.git># chhack +x hooks/post-receive

3.5.3. Quay lại hệ thống cục bộ

Thêm tlỗi mục trường đoản cú xa vào thông số kỹ thuật cục bộ:

localhost website># git remote add web ssh://root
192.168.70.188/home/user/mytrang web.gitĐẩy văn bản của kho tàng trữ toàn cục vào kho trường đoản cú xa:

localhost website># git push website +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) to the các mục of known hosts.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 rightsand the repository exists.Sau đó, biến đổi hầu như đồ vật toàn thể và nhằm tải lên những biến hóa, chỉ việc thực hiện:

localhost website># git push webwarning: push.default is unset; its implicit value is changing inGit 2.0 from "matching" to "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 & 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 the correct access rightsvà the repository exists.secondarydns website># git remote -vwebssh://root
192.168.70.188/home/user/mytrang web.git (fetch)webssh://root
192.168.70.188/home/user/mywebsite.git (push)4. Các lệnh thường dùng trong gitĐể có thể sinh sản một repository new bọn họ chạy lệnh sau:

git initLúc bọn họ mong mỏi sao chép (clone) một repository trên lắp thêm toàn thể họ xúc tiến lệnh bên dưới:

git clone /đường-dẫn-đến/repository/Lúc một repository sống bên trên một sever không giống thì họ phải triển khai một mẫu lệnh nlỗi sau:

git clone username
ipadd:/đường-dẫn-đến/repositoryVí dụ: Chúng ta bắt buộc triển khai sao chép một repository trường đoản cú 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 into "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 các biến đổi vào chỉ mục index áp dụng lệnh bên dưới:

git add git add *Ví dụ: Thực hiện thêm một tệp tin "/test-git/thử nghiệm.txt" vào repository họ vừa coppy về kế tiếp thêm nó vào chỉ mục index:

localhost project_euler># cdlocalhost ~># cd project_euler/localhost project_euler># cát > test-git/demo.txtHello installmentsvfacr.comlocalhost project_euler># git add *Để commit những chuyển đổi những chỉ mục index bọn họ chạy lệnh sau:

git commit -m "Ghi chú Commit"Ví dụ: Sau Lúc chúng ta tiến hành thêm 1 tệp tin vào chỉ mục index tiếp theo bọn họ bắt buộc commit các đổi khác tiến hành nlỗi 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 & email 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.gmail you
example.comAfter doing this, you may fix the identity used for this commit with: git commit --amend --reset-author 1 file changed, 1 insertion(+) create mode 100644 test-git/test.txtkhi họ buộc phải push những thay đổi Khi các đổi khác của bọn họ vẫn nằm ở vị trí HEAD của phiên bản sao toàn bộ đã thao tác làm việc. Để hoàn toàn có thể push những biến hóa mang đến repository remote bọn họ triển khai như sau:

git push origin masterVí dụ: khi đang commit thành công xuất sắc bọn họ đang push những đổi khác lên repository hệt như mặt dưới:

localhost project_euler># git push origin masterUsername for "https://github.com": nguyenngocdangabcd
tin nhắn.comPassword for "https://nguyenngocdangabcd
gmail.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 kết quả trên họ sẽ tiến hành push thành công xuất sắc lên repository.

Lưu ý: Thay thay đổi master bằng bất kể nhánh làm sao cơ mà bạn muốn đẩy phần đa biến đổi cho.

Để rất có thể chế tác một nhánh new mang tên là "test" cùng chuyển sang nhánh kia tự master triển khai như sau:

localhost project_euler># git checkout -b testSwitched to lớn a new branch "test"lúc bọn họ nên quay trở lại nhánh master từ 1 nhánh không giống triển khai nlỗi sau:

localhost project_euler># git checkout masterSwitched khổng lồ branch "master"Để có thể xóa một nhánh với nhánh kia mang tên là "test" họ chạy lệnh sau:

localhost project_euler># git branch -d testDeleted branch kiểm tra (was a176e65).Để cập nhật một repository toàn cục của bạn và 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 chúng ta mong mỏi hủy toàn bộ biến hóa và những commit tổng thể, về fetch lịch sử dân tộc cách đây không lâu độc nhất vô nhị tự sever cùng trỏ mang đến nhánh master toàn thể 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 chúng ta đổi khác tên của một thư mục con trong tlỗi mục thao tác làm việc hiện giờ bọn họ bắt buộc chạy lệnh git add -u để git góp chúng ta update tự động hóa tên đã thay đổi.

Lệnh git status hiển thị tâm trạng của cây thao tác làm việc, bao hàm sự khác biệt giữa chỉ mục với cam đoan ngày nay.

Lệnh git log giúp bạn cũng 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 Reset id Teamviewer...Lệnh git clean dùng làm thải trừ các tập tin không xẩy ra theo dõi ngoài thư mục thao tác.

Chỉ định vị trí bug nhtràn lên họ tất cả một trong những tùy lựa chọn sau:

Đánh vệt địa chỉ bước đầu chạy thực hiện lệnh sau: git bisect start.Đánh lốt địa chỉ tốt tiến hành lệnh sau: git bisect good.Đánh vết địa điểm bị hư thực hiện lệnh sau: git bisect bad.Chạy từ động: git bisect run.

Xem thêm: Hướng Dẫn Cấu Hình Tổng Đài Asterisk Chuẩn It, Cấu Hình Tổng Đài Asterisk Nâng Cao Bài 1

Dùng để di chuyển hoặc xóa tệp tin chúng ta chạy lệnh mặt dưới:

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

Qua bài xích trên, hỗ trợ cho chúng ta biết cách sử dụng lệnh git nhằm kiểm soát và điều hành phiên bản phân tán mã mối cung cấp mngơi nghỉ. Đồng thời giúp cho bạn có thể gìn giữ những phiên bản của toàn bộ các lần biến đổi hoàn toàn có thể dễ ợt phục sinh lại dễ dàng. Ngoài ra chúng ta cũng hoàn toàn có thể cung cấp quyền truy cập mã nguồn cho những người trong team một cách dể dàng.


Chuyên mục: Kiến Thức Bổ Ích