Tải bản đầy đủ (.docx) (19 trang)

báo cáo tìm hiểu về git – github

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (566.26 KB, 19 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN

BÁO CÁO TÌM HIỂU VỀ
GIT – GITHUB

Nhóm sinh viên thực hiện:
1. Nguyễn Đức Phương - 21521307
2. Trần Tuấn Vu - 21522807
3. Cao Quảng An Hưng - 21522112
4. Nguyễn Trần Quang Sang - 21522545
5. Lê Văn Phú - 21522466

MỤC LỤC
13
CHƯƠNG 5. TỔNG KẾT...................................................................................17
1


TÀI LIỆU THAM KHẢO..................................................................................19

CHƯƠNG 1. GIỚI THIỆU VỀ GIT
I. Sơ lược về Git
- Git, viết tắt của từ Global Information Tracker. Là một hệ thống quản lý phiên
bản phân tán (Distributed Version Control System) xuất hiện vào năm 2005. Hay
để dễ hiểu, Git được dùng để quản lý mã nguồn dự án của chúng ta. Git được biết
đến là một trong những hệ thống phổ biến nhất trong giới lập trình, nhờ vào những
khả năng quản lý và tính hữu dụng của nó trong cơng việc.
- Cơ chế lưu trữ phiên bản của Git là nó sẽ tạo ra một snapshot (lưu lại nội dung tất
cả các tập tin, thư mục tại thời điểm đó) trên mỗi tập tin sau khi commit, từ đó nó
có thể cho phép ta 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 cung 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.

2


- Git sẽ giúp chúng ta:
+ Cập nhật và lưu lại những phiên bản khác nhau của source code.
+ Khôi phục lại source code từ một phiên bản bất kỳ.
+ Dễ dàng so sánh những thay đổi từ các phiên bản khác nhau.
+ Phát hiện ai đã sửa phần nào, đã làm phát sinh lỗi.
+ Khôi phục lại tập tin bị mất.
+ Phối hợp với các đồng nghiệp một cách hiệu quả.
- Lợi ích khi sử dụng Git
+ Khi khơng có kết nối internet, chúng ta vẫn có thể làm việc và commit.
+ Thời gian trễ thấp do hầu hết dữ liệu đều được sao chép ở máy cục bộ.
+ Làm việc dễ dàng hơn với branch.
+ Dễ dàng trong việc deployment sản phẩm

II. Lịch sử và lý do ra đời của GIT:
1. Lịch sử:
- Git ra đời từ một chút của sự kế thừa có tính sáng tạo của Linus Torvalds, cụ
thể:
+ Nhân của Linux là một dự án phần mềm mã nguồn mở của một phạm vi khá lớn.
Trong phần lớn thời gain bảo trì của nhân Linux (1991-2002), các thay đổi của
phần mềm được truyền đi dưới dạng các bản vá và các tập tin lưu trữ. Vào năm
2002, dự án nhân Linux bắt đầu sử dụng một DVCS độc quyền có tên là
BitKeeper.
+ Vào năm 2005, sự hợp tác giữa cộng đồng phát triển nhân Linux và công ty
thương mại phát triển BitKeeper bị phá vỡ, và cơng cụ đó khơng cịn được cung

cấp miễn phí nữa. Chính điều này đã thúc đẩy cộng đồng phát triển Linux (chính
3


xác hơn là Linus Torvalds, người sáng lập ra Linux) phát triển công cụ của riêng họ
dựa trên những bài học từ việc sử dụng BitKeeper.
2. Lý do:
- Theo trên, một số mục tiêu của một hệ thống mới được vạch ra như sau:
+ Nhanh
+ Thiết kế đơn giản
+ Hỗ trợ tốt cho “phát triển phi tuyến tính” (non-linear development)
+ Phân tán tồn diện
+ Có khả năng xử lý các dự án lớn giống như nhân Linux một cách hiệu quả (về
mặt tốc độ và khối lượng dữ liệu)
- Kết quả, Git đã ra đời khoảng thời gian này – 2005 bởi Linus Torvalds. Kể từ
năm 2005, nó được duy trì bởi Junio Hamano cùng những người khác, và đến nay,
Git đã tiến hóa và phát triển tồn diện để dễ dàng sử dụng hơn nhưng các tiêu chí
ban đầu vẫn được đảm bảo
III. Tại sao Hệ thống kiểm soát phiên bản như Git lại cần thiết?
- Những dự án trong thực tế thường có nhiều nhà phát triển làm việc song song. Vì
vậy, một hệ thống kiểm sốt phiên bản như Git là cần thiết để đảm bảo rằng khơng
có xung đột code giữa họ
- Ngồi ra, những u cầu trong các dự án thay đổi thường xuyên. Một hệ thống
kiểm soát phiên bản cho phép những nhà phát triển quay lại những phiên bản cu
hơn của code
- Và, thỉnh thoảng một vài dự án đang chạy song song có liên quan đến cùng cơ sở
mã. Trong những trường hợp như thế, ý tưởng phân nhánh trong Git là rất quan
trọng
IV. Hệ điều hành hỗ trợ
- Git có khả năng chạy trên nhiều hệ điều hành khác nhau như: Linux, Windows,

Mas OSX, …
4


V. Các công ti lớn đang sử dụng Git hiện nay
- Netflix, Reddit, Shoptify, Udemy, Robinhood, Delivery Hero, …

CHƯƠNG 2. MỘT SỐ THUẬT NGỮ CƠ BẢN VỀ GIT
I. Repository
- Là nơi chứa tồn bộ những thơng tin cần thiết để duy trì và quản lý tiến trình dự
án cung như là nơi quản lý các thay đổi và lịch sử của toàn bộ project.
- Repository của Git được chia thành hai loại:
+ Local repository: là repository để chia sẻ giữa nhiều người.
+ Remote repository: là một repository dành cho một người sử dụng, được
bố trí trên máy tính của user.

5


Image source: a/p/tim-hieu-mot-so-khai-niem-va-ki-thuat-thuongdung-trong-git-phan-1-naQZR4pP5vx

II. Commit.
- Được hiểu là để ghi lại những sự thay đổi của file đó vào repository. Khi thực
hiện commit, ở repository sẽ tạo ra commit để ghi lại sự khác biệt trong ở trạng
thái hiện tại và lần trước. Các commit nối tiếp với nhau, sắp xếp theo thời gian.

Image Source:
a/publicimages/images/122018/capture_intro1_3_1.png

6



III. Branch
- Branch ở đây là một con trỏ có khả năng di chuyển được, trỏ đến một trong
những commit của repository. Branch mặc định có tên là master, người dùng có thể
thêm branch mới, khi đó con trỏ mới sẽ được tạo ra và trỏ đén commit hiện tại.
- Đây là một trong những các thế mạnh của Git. Đối với một dự án có nhiều người
thì việc code trên một branch nhất định sẽ gây khó khăn, do đó. Việc các lập trình
viên thực hiện trên những branch khác nhau sẽ trở nên thuận tiện hơn, không làm
ảnh hưởng đến nhau, giúp giải quyết đồng thời nhiều nhiệm vụ cùng lúc.

IV. Conflict
- Conflict là trường hợp xuất hiện khi có 2 sự thay đổi trên một dịng code, do đó
máy tính khơng thể tự quyết định dịng code nào là “đúng”. Đúng ở đây có nghĩa là
“ý đồ của lập trình viên”.
- Để giải quyết mâu thuẫn bạn phải tự tay để sửa các xung đột này. Việc của chúng
ta là nhìn vào file bị conflict và tự quyết định dịng code nào giữ lại, dịng nào xóa
bỏ.
V. Staging Area
7


- Là một tập tin đơn giản nằm trong thư mục git, nó sẽ chứa thơng tin về trạng thái
của một file trong dự án.
CHƯƠNG 3. CÁC LỆNH, THAO TÁC CƠ BẢN VÀ NÂNG CAO CỦA GIT
I. Những câu lệnh cơ bản:
1. git config.
- Là câu lệnh mà chúng ta phải thực thi đầu tiên khi cài đặt Git lên máy. Nó sẽ thực
thi lệnh thiết lập tên (user name) và email của bạn. Do đó, nó sẽ rất hữu ích khi
chúng ta muốn biết ai đã viết đoạn code để có thể trao đổi với nhau trong trường

hợp chúng ta khơng hiểu mục đích của đoạn code đó là gì.
- Cú pháp để sử dụng: + Set username: git config -- global user.name “Your name”
+ Set email: git config --

global user.email “Your email”

2. git version.
- Là câu lệnh để hiển thị phiên bản git mà chúng ta đang sử dụng trên máy tính.
- Cú pháp để sử dụng: git version
3. git init
- Là câu lệnh được sử dụng khi chúng ta bắt đầu một project mới. Khi thực thi câu
lệnh, nó sẽ giúp chúng ta tạo một repository mới, sau đó nó sẽ là nơi để quản lý
source code của các developers.
- Cú pháp để sử dụng: git init <repository name>
4. git clone
- Một repository ở trên kho lưu trữ của git( github, gitlab) sẽ được tải về máy của
user.
- Cú pháp: git clone
5. git add
- Tất cả các file code mới hoặc file được chỉnh sửa sẽ được thêm vào repository.
8


- Cú pháp: + Thêm một file vào staging area: git add file_name
+ Thêm tất cả các file vào staging area: git add *
6. git commit
- Là câu lệnh được sử dụng phổ biến nhất. Khi được thực thi, câu lệnh này sẽ giúp
chúng ta lưu những sự thay đổi ở các file trong staging area xuống repository.
- Cú pháp: git commit -m “your useful commit message”
7. git status

- Câu lệnh cho phép chúng ta xem tình trạng hiện của mã nguồn có bao nhiêu file
được thêm mới hoặc được chỉnh sửa cung như cho biết những file nào đang nằm
trong staging area hoặc nằm ngoài staging area.
- Cú pháp: git status
8. git branch
- Ở trong repository, luôn luôn chứa nhiều nhánh riêng biệt được dùng để triển khai
thực hiện các công việc độc lập với các nhánh khác.
- Cú pháp:
+ Hiển thị các branch đang có trong 1 repository nhất định: git branch
+ Tạo một branch mới: git branch
+ Xoá branch: git branch -d
9. git checkout
- Câu lệnh được dùng để chuyển qua chuyển lại giữa các branch.
- Cú pháp:
+ Để di chuyển: git checkout
+ Vừa di chuyển, vừa tạo mới nếu chưa tồn tại câu lệnh: git checkout -b
<new_branch_name>
9


10. git revert
- Hoàn lại, hồi lại các tác vụ đã làm
- Cú pháp: git revert
11. git reset
- Xoá các commit ở nhánh hoặc phục hồi những thay đổi khi chưa được commit.
Ngồi ra, chúng ta có thể loại bỏ file khỏi staging area.
- Cú pháp: git reset
II. Những câu lệnh trung bình:
1. git remote
- git remote là câu lệnh được sử dụng để lưu trữ một repository lên một dịch vụ lưu

trữ từ xa (gitlab, github). Vì sau khi gọi câu lệnh git init để khởi tạo repository thì
nó chỉ đang tồn tại trên máy local của chúng ta.
- Cú pháp: git remote add <shortname> <url>
2. git push
- câu lệnh được sử dụng để đồng bộ, cập nhật những thay đổi trên source
code(file) được commit trên local lên một dịch vụ lưu trữ
- Cú pháp: git push -u <short_name>
Lưu ý: Trước khi sử dụng git push chúng ta nên cấu hình origin và upstream
Syntax: git push –set-upstream <short_name>
3. git fetch
- Được sử dụng để quản lý source code và làm việc nhóm. Những commit của bạn
và của các thành viên khác sẽ được cập nhật những thông tin mới như commit,
branch, ...
- Cú pháp: git fetch
10


4. git pull
- Khi gọi đến câu lệnh này, tất cả những nội dung trên dịch vụ lưu trữ từ xa sẽ tải
xuống local repository.
- Cú pháp: git pull <remote_url>
5. git stash
- Cho phép chúng ta lưu trữ các file được chỉnh sửa trong vùng nhớ tạm/
- Cú pháp:
+ Xem tất cả các stash hiện có: git stash list
+ Áp dụng các thay đổi trong một stash lên branch hiện tại đang sử dụng:
git stash apply hoặc git stash pop
6. git log
- Xem tất cả commit trước đó được sắp xếp theo thời gian.
- Cú pháp: git log

7. git shortlog
- Xem git log với nội dung vắn tắt
- Cú pháp: git shortlog
8. git show
- Xem thông tin chi tiết của một commit ngẫu nhiên
- Cú pháp: git show <commit_hash>
9. git rm
- Xoá một file cừ code base
- Cú pháp: git rm <file_name>
11


10. git merge
- Gộp, liên kết những source code và những thay đổi trên một branch khác lên một
branch đang sử dụng hiện tại.
- Cú pháp: git merge
III. Những câu lệnh nâng cao:
1. git rebase
- Tương tự như git merge, nó sẽ kết hợp ở một branch khác vào một branch đang
sử dụng ở thời điểm hiện tại. Tuy nhiên, git rebase sẽ hiển thị ra màn hình tồn bộ
lịch sử commit. Chúng ta nên sử dụng nó khi có nhiều branch riêng dùng để tổng
hợp chúng lại thành một branch duy nhất. Do đó, lịch sử commit sẽ trở nên dễ
kiểm soát và truy vết hơn.
- Cú pháp: git rebase <base>
2. git bisect
- Liệt kê ra những bad commits.
- Cú pháp: git bisect start (bắt đầu sử dụng) => git bisect good a123 (cho nó biết
về một commit tốt) => git bisect bad z123 (cho nó biết về một commit xấu).
3. git cherry-pick
- Một lệnh rất hữu ích, nó cho phép chúng ta chọn một branch bất kỳ nào đó từ một

branch bất kỳ và sau đó áp dụng nó vào một branch đang sử dụng.
- Cú pháp: git cherry-pick <commit-hash>
4. git archive
- Khi gọi đến câu lệnh này, nó sẽ thực hiện việc kết hợp nhiều tệp thành một tệp
duy nhất. Cơ bản thì nó giống như file rar và zip. Do đó, chúng ta có thể giải nén
các tệp đấy để lấy các tệp bên trong nó.
- Cú pháp: git archive –format zip Head > archive-HEAD.zip
5. git pull-rebase
12


- Nếu bạn muốn download content từ dịch vụ lưu trữ và dùng rebase thay vì merge
thì có thể sử dụng git pull –rebase
6. git blame
- Được sử dụng để kiểm tra nội dung bên trong của một file bất kỳ, nó giúp chúng
ta xác định ai đã thực hiện những chỉnh sửa lên file.
- Cú pháp: git blame <file_name>
7. git mv
- Đổi tên cu của git file sang tên mới
- Cú pháp: git mv <old-file-name> <new-file-name>
8. git clean
- Xoá sạch tất cả các nội dung được thay đổi với file chưa được theo dõi.
- Cú pháp: git clean
CHƯƠNG IV. GITHUB
I. Sơ lược về Github
- Một trong những cách tốt nhất để chia sẻ những gì bạn đã học được với người
khác là đưa mã của bạn lên GitHub. Github được phát triển vào ngày 19 tháng 10
năm 2007. Sau đó trang web này được đưa ra vào tháng 4 năm 2008 bởi các nhà
nhà phát triển Tom Preston-Werner, Chris Wanstrath, và PJ Hyett. GitHub vừa là
một trang web vừa là một dịch vụ hỗ trợ phát triển phần mềm bằng cách cho phép

bạn lưu trữ mã của mình trong các vùng chứa, được gọi là kho lưu trữ và bằng cách
theo dõi các thay đổi được thực hiện đối với mã của bạn. Ngồi ra, nó cung cấp
dịch vụ lưu trữ và các công cụ để xây dựng, kiểm tra và triển khai mã.
- GitHub sử dụng Git, một cơng cụ phát triển kiểm sốt phiên bản, để quản lý các
dự án của bạn bằng cách theo dõi các thay đổi đối với tệp và cho phép nhiều người
làm việc trên cùng một dự án. Mặc dù cả GitHub và Git đều có tên giống nhau,
GitHub là một dịch vụ trong khi Git là một công cụ phát triển có thể được sử dụng
bởi bạn bên ngồi và khơng có GitHub.

13


II. Tại sao Github lại quan trọng?
- Có nhiều lý do tại sao việc biết về GitHub lại quan trọng đối với sự phát triển cá
nhân của bạn với tư cách là nhà phát triển. Một phần lớn sức hấp dẫn của Github là
quyền truy cập mà nó cấp cho các nhà phát triển vào cộng đồng lớn các nhà phát
triển trên khắp thế giới, những người công khai chia sẻ mã, dự án và công cụ phát
triển phần mềm của họ với nhau. Do đó, nếu bạn muốn tiếp tục phát triển các kỹ
năng Git của mình, tạo danh mục lập trình hoặc tìm việc, GitHub có thể trợ giúp.
III. Khái quát giao diện Github
1. Tạo tài khoản:
- Bạn sẽ thấy một trang có biểu mẫu dưới tiêu đề "Creat your account".

- Điền vào mỗi trường tên người dùng, địa chỉ email và mật khẩu. Chọn tên người
dùng và email là rất quan trọng!
14


2. Cài đặt:


- Bạn có thể trả lời các câu hỏi tùy chọn hoặc tiếp tục bằng cách nhấp vào nút
Complete setup để hoàn tất việc tạo tài khoản của mình.

15


- Trình duyệt của bạn sẽ hiển thị một bảng điều khiển cá nhân với một phần dành
cho các dự án của bạn và một số thông báo:

+ Read the guide: Đọc phần hướng dẫn
+ Start a project: Bắt đầu một dự án
+ Create repository: Tạo một mục chứa
3. Khái quát tạo một kho lưu trữ từ xa đầu tiên của bạn trên GitHub:

16


- Trên GitHub, tạo một kho lưu trữ mới bằng cách nhấp vào nút New repository
trên trang chủ.
- Trên trang kho lưu trữ mới, hãy đặt tên cho kho lưu trữ của bạn. Sau khi đặt tên
cho kho lưu trữ, hãy nhấp vào Create repository

CHƯƠNG 5. TỔNG KẾT
I.Kết quả đạt được
- Tìm hiểu và nắm được thơng tin về Git và Github. Có khả năng giải thích chi tiết
giao diện sử dụng của một project trên Github. Hiểu các lệnh được sử dụng trong
Git để có thể sử dụng Git lẫn Github nhuần nhuyễn hơn. Rồi từ đó mỗi thành viên
trong nhóm đều trang bị được thêm cho mình một công cụ hỗ trợ đắc lực trên con
đường trở thành lập trình viên, một cách chuyên nghiệp và hiệu quả hơn.
II. Bảng phân công công việc

17


STT
Họ và tên
1
Trần Tuấn Vu

-

2

Lê Văn Phú

-

3

Cao Quảng An Hưng

-

4

Nguyễn Trần Quang Sang

-

5


Nguyễn Đức Phương

-

Nhiệm vụ
Tìm hiểu về lịch sử ra đời, lý do ra đời,
hệ điều hành hỗ trợ, một số ví dụ thực
tế các cơng ty lớn dùng git để lưu trữ
source
Tìm hiểu về một số khái niệm cơ bản
của git, các câu lệnh cơ bản + một số
lệnh nâng cao
Tìm hiểu về lịch sử ra đời, lý do ra đời,
khái quát giao diện của Github
Tìm hiểu tổng quan về git và github rồi
tổng hợp các kiến thức cần thiết vào
file word báo cáo
Quay video thực hiện như trong file đề
bài đã mơ tả và tìm hiểu thêm một số
lệnh nâng cao của git

TÀI LIỆU THAM KHẢO
[DVCD là gì ?]
/>[An introduction to Git]
/>[Sơ lược lịch sử Git]
/>96dd76f56bddcac80d652d744479d194.html
[Git and Github introduction]
/>%20a%20popular%20version,Tracking%20code%20changes
[Git on Wikipedia]


18


/>%20links-,History,maintain%20the%20project%20since%202002.
[Git commands]
/>[Git branch là gì?]
/>[Git là gì?]
/>[Tìm hiểu thêm về git]
/>[Git và những lệnh cơ bản]
a/p/nhung-dieu-can-biet-ve-git-va-nhung-lenh-co-ban-tren-git6J3ZgNOqKmB
[Git và những tính năng cơ bản]
/>[Git và những thuật ngữ cơ bản]
a/thu-thuat/kien-thuc-ve-git-phan-1-nhung-khai-niem-va-thuat-nguco-ban-ve-git-90.html
[Features, Commands and Workflow in Git]

/>
19



×