1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỀ TÀI tìm hiểu về git github

12 46 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 692,05 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DVCS nghĩa là hệ thống giúp mỗi máy tính có thể lưu trữ nhiều phiên bản khác nhau của một mã nguồn được nhân bản clone từ một kho chứa mã nguồn repository, mỗi thay đổi vào mã nguồn trên

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG TP.HCM

KHOA HỆ THỐNG THÔNG TIN

BÀI TẬP TUẦN

ĐỀ TÀI: Tìm hiểu về Git - Github

I Thành viên nhóm:

1 Đào Võ Trường Giang.

2 Phan Thanh Bách.

3 Nghiêm Thị Cẩm Nhung.

4 Phan Phạm Diễm Quỳnh.

5 Trần Thị Hồng Minh.

II Mục lục:

Chương 1: Giới thiệu về Git, Github và giao diện cơ bản _3

Trang 2

1.A Git là gì? _3

1.B Github là gì? 5

Chương 2: Các tập lệnh cơ bản 7

2.1 Git config _7 2.2 Git init _7

2.3 Git clone 7 2.4 Git status _ 7 2.5 Git add _7 2.6 Git commit 7 2.7 Git push/git pull 7 2.8 Git branch _7 2.9 Git checkout _7 2.10 Git stash _8 2.11 Git merge 8 2.12 Git reset _8 2.13 Git remote _8 2.14 Git add 8

Chương 3: Các thao tác cơ bản 9 Chương 4: Tổng kết 10 Tài liệu tham khảo 12 III Danh sách hình ảnh:

IV Nội dung:

Chương 1: Giới thiệu về Git, Github và giao diện cơ bản _3 Chương 2: Các tập lệnh cơ bản 7 Chương 3: Các thao tác cơ bản 9 Chương 4: Tổng kết _10 Tài liệu tham khảo 12 C

Trang 3

HƯƠNG 1: GIỚI THIỆU VỀ GIT, GITHUB VÀ GIAO DIỆN CƠ BẢN.

A Git là gì?

- Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS) là một trong những hệ thống quản lý phiên bản phân tán phổ

biến nhất hiện nay DVCS nghĩa là hệ thống giúp mỗi máy tính có thể lưu trữ nhiều phiên

bản khác nhau của một mã nguồn được nhân bản (clone) từ một kho chứa mã nguồn (repository), mỗi thay đổi vào mã nguồn trên máy tính sẽ có thể ủy thác (commit) rồi

đưa lên máy chủ nơi đặt kho chứa chính Và một máy tính khác (nếu họ có quyền truy cập) cũng có thể clone lại mã nguồn từ kho chứa hoặc clone lại một tập hợp các thay đổi mới nhất trên máy tính kia

- Cơ chế lưu trữ phiên bản của Git là nó sẽ tạo ra một “ảnh chụp” (snapshot) trên mỗi tập

tin và thư mục sau khi commit, từ đó nó có thể cho phép bạn tái sử dụng lại một ảnh chụp nào đó mà bạn có thể hiểu đó là một phiên bản Đây cũng chính là lợi thế của Git so với các DVCS khác khi nó không “lưu cứng” dữ liệu mà sẽ lưu với dạng snapshot

- Version Control System – VCS là gì?

+ VCS là viết tắt của Version Control System là hệ thống kiểm soát các phiên

bản phân tán mã nguồn mở Các VCS sẽ lưu trữ tất cả các file trong toàn bộ dự án và ghi lại toàn bộ lịch sử thay đổi của file Mỗi sự thay đổi được lưu lại sẽ được và thành một version (phiên bản)

+ VCS nghĩa là hệ thống giúp lập trình viên có thể lưu trữ nhiều phiên bản khác nhau của một mã nguồn được nhân bản (clone) từ một kho chứa mã nguồn (repository),

Trang 4

mỗi thay đổi vào mã nguồn trên local sẽ có thể ủy thác (commit) rồi đưa lên server nơi đặt kho chứa chính

+ Và một máy tính khác nếu họ có quyền truy cập cũng có thể clone lại mã nguồn

từ kho chứa hoặc clone lại một tập hợp các thay đổi mới nhất trên máy tính kia

+ Lập trình viên có thể xem lại danh sách các sự thay đổi của file như xem một dòng thời gian của các phiên bản Mỗi phiên bản bao gồm: nội dung file bị thay đổi, ngày giờ sửa đổi, người thay đổi là ai, lý do thay đổi hay tên phiên bản…

▷ Một vài khái niệm cơ bản

trong Git là gì?

Kho dữ liệu – Repository

- Repository là nơi quản lý, lưu

trữ tất cả mọi thông tin cần thiết cũng

như các sửa đổi và lịch sử sửa đổi của

toàn bộ dự án

Hiện nay, có hai loại repository đó là

local repository và remote repository

Snapshot

- Cơ chế lưu trữ các phiên bản

của Git là sau mỗi lần bạn thực hiện lưu

trạng thái đều sẽ tạo ra một ảnh chụp có

lưu lại tất cả nội dung của tập tin và thư

mục tại thời điểm đó rồi tham chiếu tới snapshot

Nếu như tập tin không có thay đổi để hiệu quả hơn thì Git sẽ không lưu trữ tập tin đó lại

mà chỉ tạo ra liên kết với tập tin gốc đã được tồn tại trước đó Sau đó, khi cần thì bạn có thể khôi phục và sử dụng lại một snapshot là được Đây cũng là lợi thế khi lưu dưới dạng snapshot sẽ giúp Git tiết kiệm không gian lưu trữ vô cùng hiệu quả

Commit

- Commit là thao tác báo cho hệ thống biết bạn có muốn lưu lại trạng thái hiện hành hay không rồi ghi nhận lại lịch sử các xử lý đã thực hiện như: xóa, cập nhật, thêm các file hoặc thư mục nào đó trên repository

Clone

- Nếu như bạn cần có một bản sao của kho chứa Git có sẵn, có thể là dự án mà bạn tham gia thì chỉ cần thực hiện Clone Đây chỉnh là điểm giúp Git khác biệt hơn so với một số hệ thống quản lý phiên bản mã nguồn khác

- Bởi vì, Clone là tạo ra một bản sao của gần như tất cả những gì của repository mà máy chủ đang lưu trữ Bạn sẽ có được tất cả lịch sử đã xảy ra trên hệ thống và có thể quay lại, undo lại bất kỳ thời điểm commit nào một cách dễ dàng

Push

- Lệnh Push thường được sử dụng để đưa nội dung kho lưu trữ cục bộ lên server và nó cũng là cách bạn chuyển giao các commit từ kho lưu trữ cục bộ lên server

Trang 5

- Lệnh này sẽ cho phép truy cập vào Repository trên server và kéo toàn bộ dữ liệu mà bạn chưa có được từ Repository trên server về

Full

- Lệnh này sẽ lấy toàn bộ dữ liệu ở Repository trên server và gộp vào cái branch hiện tại

mà bạn đang làm việc

Branch

- Nhánh là khái niệm rất hay trong Git với nhánh và bạn có thể tách riêng được các tính năng của dự án rồi thử nghiệm những tính năng mới dễ dàng hơn Hoặc bạn cũng có thể sử dụng nhánh để có thể khắc phục và hoàn chỉnh lỗi bất kỳ nào đó của dự án

Master

- Master là nhánh chính của tất cả các Repository của bạn và nó bao gồm những thay đổi

và commit được thực hiện gần nhất

Tags

- Tags cung cấp cách để có thể theo dõi được các commit quan trọng Nó đóng vai trò là con trỏ khi các tags chú thích đã được lưu trữ dưới dạng đầy đủ nhất

Upstream

- Upstream thường đề cập đến những nơi bạn pusch các thay đổi của mình và thường sẽ

là các nhánh chính

Origin

- Origin là phiên bản mặc định của repository và nó cũng đóng vai trò là bí danh trong hệ thống để có thể liên lạc được với các nhánh chính

B Github là gì?

- GitHub là một hệ thống quản lý dự án và phiên bản code, hoạt động giống như một

mạng xã hội cho lập trình viên Các lập trình viên có thể clone lại mã nguồn từ một

repository và Github chính là một dịch vụ máy chủ repository công cộng, mỗi người có thể tạo tài khoản trên đó để tạo ra các kho chứa của riêng mình để có thể làm việc

Trang 6

- GitHub có 2 phiên bản: miễn phí và trả phí Với phiên bản có phí thường được các doanh nghiệp sử dụng để tăng khả năng quản lý team cũng như phân quyền bảo mật dự án Còn lại thì phần lớn chúng ta đều sử dụng Github với tài khoản miễn phí để lưu trữ source code

- Github cung cấp các tính năng social networking như feeds, followers, và network graph để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit

- Nếu một comment để mô tả và giải thích một đoạn code Thì với Github, commit message chính là phần mô tả hành động mà bạn thực hiện trên source code

- Github trở thành một yếu tố có sức ảnh hưởng lớn trong cộng động nguồn mở Cùng với Linkedin, Github được coi là một sự thay thế cho CV của bạn Các nhà tuyển dụng cũng rất hay tham khảo Github profile để hiểu về năng lực coding của ứng viên

- Giờ đây, kỹ năng sử dụng git và Github từ chỗ ưu thích sang bắt buộc phải có đối với các ứng viên đi xin việc

Tính năng của Github

GitHub được coi là một mạng xã hội dành cho lập trình viên lớn nhất và dễ dùng nhất với các

tính năng cốt lõi như:

1 Wiki, issue, thống kê, đổi tên project,

project được đặt vào namespace là user

2 Watch project: theo dõi hoạt động của

project của người khác Xem quá trình

người ta phát triển phầm mềm thế nào,

project phát triển ra sao

3 Follow user: theo dõi hoạt động của người

khác

Có 2 cách tiếp cận GitHub: Tạo project của riêng

mình Contribute cho project có sẵn: fork project có sẵn của người khác, sửa đổi, sau đó đề nghị

họ cập nhật sửa đổi của mình (tạo pull request)

C

HƯƠNG 2: CÁC TẬP LỆNH CƠ BẢN.

Trang 7

CÁC LỆNH GIT CƠ BẢN.

1) Git config:

- Tác dụng: Để set user name và email của bạn trong main configuration file

- Cách dùng: Để kiểm tra tên và kiểu email trong cấu hình dùng git config   

global user.name và git config  global user.email Để set email hoặc tên mới git config global user.name = “Hải Nguyễn” và git config   

global user.email = “hainguyen@gmail.com”

2 Git init:

- Tác dụng: Khởi tạo 1 git repository 1 project mới hoặc đã có

- Cách dùng: git init trong thư mục gốc của dự án.

3 Git clone:

- Tác dụng: Copy 1 git repository từ remote source

- Cách dùng: git clone <:clone git url:>

4 Git status:

- Tác dụng: Để check trạng thái của những file bạn đã thay đổi trong thư mục làm việc

VD: Tất cả các thay đổi cuối cùng từ lần commit cuối cùng

- Cách dùng: git status trong thư mục làm việc.

5 Git add:

- Tác dụng: Thêm thay đổi đến stage/index trong thư mục làm việc

- Cách dùng: git add

6 Git commit:

- Tác dụng: commit nghĩa là một action để Git lưu lại một snapshot của các sự thay đổi trong thư mục làm việc Và các tập tin, thư mục được thay đổi đã phải nằm trong Staging Area Mỗi lần commit nó sẽ được lưu lại lịch sử chỉnh sửa của code kèm theo tên và địa chỉ email của người commit Ngoài ra trong Git bạn cũng có thể khôi phục lại tập tin trong lịch sử commit của nó để chia cho một branch khác, vì vậy bạn sẽ dễ dàng khôi phục lại các thay đổi trước đó

- Cách dùng: git commit -m

7 Git push/git pull:

- Tác dụng: Push hoặc Pull các thay đổi đến remote Nếu bạn đã added và committed các thay đổi và bạn muốn đẩy nó lên hoặc remote của bạn đã update và bạn apply tất cả thay đổi đó trên code của mình

- Cách dùng: git pull <:remote:> <:branch:> and git push <:remote:> <:branch:>

8 Git branch:

- Tác dụng: liệt kê tất cả các branch (nhánh)

- Cách dùng: git branch hoặc git branch -a

9 Git checkout:

- Tác dụng: Chuyển sang branch khác

- Cách dùng: git checkout <: branch:> hoặc ** _ git checkout -b <: branch:> nếu bạn muốn

tạo và chuyển sang một chi nhánh mới

10 Git stash:

- Tác dụng: Lưu thay đổi mà bạn không muốn commit ngay lập tức

Trang 8

- Cách dùng: git stash trong thư mục làm việc của bạn.

11 Git merge:

- Tác dụng: Merge 2 branch lại với nhau

- Cách dùng: Chuyển tới branch bạn muốn merge rồi dùng git

merge <:branch_ban_muon_merge:>

12 Git reset:

- Tác dụng: Bạn đã đưa một tập tin nào đó vào Staging Area nhưng bây giờ bạn muốn loại bỏ nó

ra khỏi đây để không phải bị commit theo

- Cách dùng: git reset HEAD tên_file

13 Git remote:

- Tác dụng: Để check remote/source bạn có hoặc add thêm remote

- Cách dùng: git remote để kiểm tra và liệt kê Và git remote add <: remote_url:> để thêm.

14 Git add:

- Tác dụng: Để đưa một tập tin vào Staging Area

- Cách dùng: git add tên_file hoặc muốn thêm hết file của thư mục thì git add all.

C

Trang 9

HƯƠNG 3: CÁC THAO TÁC CƠ BẢN.

Muốn tạo repository?

$ git init

- Trong thư mục muốn tạo repository thực hiện bằng lệnh init

Muốn đăng ký file và thư mục trong Index?

$ git add <filepattern>

- Filepattern thì ngoài cách chỉ định tên file cách trực tiếp thì cũng có thể chỉ định bằng cách đính kèm thẻ đại diện kiểu như "*.txt" Khi mà chỉ định "." thì bao hàm luôn cả thư mục phụ (sub directory) bên trong có thể đăng ký trong index cho tất cả file

- Khi thêm lựa chọn -p thì có thể đăng ký thay đổi chỉ 1 bộ phận của file muốn chỉnh sửa Và nếu thêm lựa chọn -i thì có thể lựa chọn mang tính tương tác file đăng ký trong Index

Muốn commit file được thêm trong Index?

$ git commit

- Khi thêm lựa chọn -a thì chuỗi những hành động kiểm tra file bị thay đổi (trừ trường hợp thêm mới file), rồi thêm trong index sau đó commit thì có thể thực hiện chỉ bằng 1 lệnh

- Khi thêm lựa chọn -m thì có thể chỉ định nội dung giải thích của commit rồi thực hiện commit Trường hợp không có thêm vào lựa chọn -m thì editor để chỉnh sửa nội dung của giải thích commit sẽ được khởi động

Muốn hiển thị danh sách của file đã được chỉnh sửa?

$ git status

- Khi thêm lựa chọn -s thì có thể thực hiện việc không hiển thị nội dung giải thích

- Thêm nữa là khi thêm lựa chọn -b thì không hiển thị nội dung giải thích nhưng có thể thực hiện việc hiển thị tên nhánh

Muốn xem phần sai khác của file được chỉnh sửa?

$ git diff

- Tình trạng không có chỉ định lựa chọn thì sẽ hiển thị phần sai khác của index với cây công việc (working tree)

- Khi thêm lựa chọn -cached thì sẽ hiển thị phần sai khác của HEAD với index

- Và khi chỉ định commit và HEAD thì sẽ hiển thị phần sai khác của HEAD được chỉ định với cây công việc (working tree)

Muốn xem commit log?

$ git log

- Lệnh log sẽ mặc định hiển thị danh sách commit của branch

- Trường hợp muốn xem commit log của file đặc định nào đó thì hãy chỉ định tên file

Muốn xác nhận chi tiết của commit?

$ git show <commit>

Trang 10

- Tham số của lệnh show thì có thể chỉ định HEAD và commit đã tham chiếu bằng lệnh log.

Muốn di chuyển, thay đổi tên thư mục và file?

$ git mv <oldfilename> <newfilename>

Muốn xóa file?

$ git rm <file>

Muốn xóa file không phải là đối tượng quản lý?

$ git clean

- Khi thêm lựa chọn -n thì có thể xác nhận file đã bị xóa Thêm lựa chọn -f thì sẽ xóa file thực tế

- Mặc định thì file được chỉ định là gitignore sẽ không phải là đối tượng xóa, nhưng thêm lựa chọn -x thì cho dù là file được chỉ định là gitignore thì cũng sẽ là đối tượng xóa

Muốn phục hồi lại file ban đầu sau khi đã chỉnh sửa trong Index?

$ git checkout <file>

Muốn bỏ file đã đăng ký trong Index?

$ git reset HEAD <file>

Muốn đăng ký trong tất cả Index chỉ những file đã có commit trước đó?

$ git add -u

C

HƯƠNG 4: TỔNG KẾT

Trang 11

 GitHub mang lại lợi ích gì cho các lập trình viên?

- GitHub đã trở thành một dịch vụ máy chủ lưu trữ mã nguồn lập trình số 1 thế giới Nó sở hữu hơn 25 triệu người dùng, 80 triệu mã và góp phần xây dựng lớn trong cộng đồng công nghệ thông tin

- Để đạt được những con số đầy ấn tượng trên, GitHub mang lại vô vàn lợi ích dành cho các lập trình viên như:

Cải thiện kỹ coding skill, tracking bug: Rèn luyện kỹ năng tại đây là một ý tưởng không

tồi đối với mọi Developer, bởi vì nó sở hữu vô vàn open source, project, contributor sẽ mang đến cho người học hàng tá điều hay, giúp trau dồi khả năng của bản thân rất nhiều

Cung cấp kho dữ liệu hữu ích: GitHub sẽ hỗ trợ code search về open source projects

dựa theo technology pattern mà người dùng yêu thích

Khẳng định vị thế riêng của Developer: Mặc dù nó chỉ chiếm một vị trí nhỏ trong CV,

nhưng đây lại là "vũ khí tối tân" giúp nhà tuyển dụng phân biệt giữa một lập trình viên thực thụ với những người chuyên môn thấp

Dễ dàng quản lý kho source code: Lợi ích này giúp Developer nhận biết ai đã thực hiện

commit và hỗ trợ họ phát triển source theo nhiều nhánh

 Những lợi ích mang lại của Git là gì?

Git có thể giúp bạn giải quyết triệt để và nhanh chóng các vấn đề như:

 Lưu lại những phiên bản khác nhau của mã nguồn dự án phần mềm

 Khôi phục lại các mã nguồn từ một phiên bản bất kỳ khác

 Hỗ trợ so sánh dễ dàng hơn giữa các phiên bản

 Phát hiện được những vị trí, những phần mà người khác đã chỉnh sửa làm phát sinh lỗi

 Khôi phục lại những tập tin đã bị mất đi

 Thử nghiệm và mở rộng các tính năng của dự án một cách dễ dàng mà không làm ảnh hưởng đến các phiên bản chính

 Hỗ trợ phối hợp thực hiện dự án trong một nhóm mang lại nhiều hiệu quả hơn

 Git đảm bảo không có xung đột code giữa các lập trình viên trong một nhóm

 Chỉ cần có clone mã nguồn từ kho chứa hoặc clone một phiên bản thay đổi nào đó từ kho chứa hoặc một nhánh nào đó từ kho chứa là lập trình viên có thể bắt tay vào làm việc mọi lúc mọi nơi

Ngày đăng: 06/10/2021, 15:07

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w