- 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 t
Trang 1ĐẠ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 Vũ - 21522807
3 Cao Quảng An Hưng - 21522112
4 Nguyễn Trần Quang Sang - 21522545
5 Lê Văn Phú - 21522466
Trang 2MỤC LỤC
BÁO CÁO TÌM HIỂU VỀ GIT - GITHUB 1
CHƯƠNG I: GIỚI THIỆU VỀ GIT 2
I Sơ lược về Git 2
II Lịch sử và lý do ra đời của GIT 3
III Tại sao Hệ thống kiểm soát phiên bản như Git lại cần thiết? .4
IV Hệ điều hành hỗ trợ 5
V Các công ti lớn đang sử dụng Git hiện nay 5
CHƯƠNG 2 MỘT SỐ THUẬT NGỮ CƠ BẢN VỀ GIT 5
I Repository 5
II Commit 6
III Branch 7
IV Conflict 7
V Staging Area 7
CHƯƠNG 3 CÁC LỆNH, THAO TÁC CƠ BẢN VÀ NÂNG CAO CỦA GIT 8
I Những câu lệnh cơ bản 8
II Những câu lệnh trung bình 9
III Những câu lệnh nâng cao 11
CHƯƠNG 4 GITHUB 12
I Sơ lược về Github 12
II Tại sao Github lại quan trọng? 13
III Khái quát giao diện Github 13
CHƯƠNG 5 TỔNG KẾT 17
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
Trang 3đế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 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
- 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
Trang 4+ 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 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 toà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 toà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
Trang 5III 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 soá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ọ
- Ngoài ra, những yê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 cũ 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, …
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 toàn bộ những thông tin cần thiết để duy trì và quản lý tiến trình dự
án cũng 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:
Trang 6+ 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
Image source:
https://viblo.asia/p/tim-hieu-mot-so-khai-niem-va-ki-thuat-thuong-dung-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:
https://ilook.asia/publicimages/images/122018/capture_intro1_3_1.png
Trang 7III 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
- 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
Trang 8CHƯƠ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 <project URL>
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.
- 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
Trang 9- 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 cũng 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 <brand_name>
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 <branch_name>
+ 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>
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.
Ngoà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
Trang 10- 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> <branch_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> <branch_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
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
Trang 11- 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>
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 <branch_name>
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 toà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
Trang 12- 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
- 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 cũ 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 Ngoà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 soá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,
Trang 13GitHub 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 ngoài và không có GitHub
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"
Trang 14- Đ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!
2 Cài đặt:
Trang 15- 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.
Trang 16- 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: