Báo Cáo Tìm Hiểu Git Github

Báo Cáo Git Github được biên soạn dưới dạng file PDF cho các bạn sinh viên tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị thật tốt cho các kì thi sắp tới. Mời bạn đọc đón xem!

1
ĐẠI HC QUC GIA TP. H CHÍ MINH
TRƯỜNG ĐẠI HC CÔNG NGH THÔNG TIN
BÁO CÁO TÌM HIỂU VỀ
GIT GITHUB
Nhóm sinh viên thc hin:
1. Nguyn Đc Phương - 21521307
2. Trn Tun V - 21522807
3. Cao Quảng An Hưng - 21522112
4. Nguyn Trn Quang Sang - 21522545
5. Lê Văn Phú - 21522466
2
MC LC
BÁO CÁO TÌM HIU V GIT - GITHUB ............................................................ 1
CHƯƠNG I: GII THIU V GIT ......................................................................... 2
I. Sơ lược v Git ....................................................................... 2
II. Lch s và lý do ra đời ca GIT .......................................... 3
III. Ti sao H thng kim soát phiên bản như Git lại cn thiết?
............................................................................................................ 4
IV. H điu hành h tr ........................................................... 5
V. Các công ti lớn đang sử dng Git hin nay ......................... 5
CHƯƠNG 2. MỘT S THUT 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 CA GIT
................................................................................................................................. 8
I. Nhng câu lệnh cơ bản ......................................................... 8
II. Nhng câu lnh trung bình .................................................. 9
III. Nhng câu lnh nâng cao ................................................. 11
CHƯƠNG 4. GITHUB ....................................................................................... 12
I. Sơ lược v Github ............................................................... 12
II. Ti sao Github li quan trng? .......................................... 13
III. Khái quát giao din Github .............................................. 13
CHƯƠNG 5. TỔNG KT .................................................................................. 17
TÀI LIU THAM KHO .................................................................................. 19
CHƯƠNG 1. GII THIỆU VỀ GIT
I. Sơ lược về Git
- Git, viết tắt của tGlobal Information Tracker. Là một hệ thống quản 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 nguồn dự án của chúng ta. Git được biết đến
3
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ừ đó
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
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 vic deployment sn phm
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
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
5
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 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 tvà quản 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:
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
7
III. Branch
- Branch ở đây là một con trỏ khả năng di chuyển được, trỏ đến một trong những
commit của repository. Branch mặc định tên là master, người dùng 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 một trong những các thế mạnh của Git. Đối với một dự án nhiều người
thì việc code trên một branch nht định sgâ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.
8
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) email của bạn. Do đó, sẽ rt hữu ích khi chúng
ta muốn biết ai đã viết đoạn code để 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
- 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, sẽ giúp chúng ta tạo một repository mới, sau đó sẽ nơi để quản
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 vmá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
- 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
9
7. git status
- Câu lệnh cho phép chúng ta xem tình trạng hiện của nguồn 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
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). 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 làm việc nhóm. Những commit của bạn
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 stả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
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 khi 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
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 tnó 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ỳ, 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
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,
13
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 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".
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:
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.
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:
17
- 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 KT
I.Kết qu đạt được
- Tìm hiu và nắm được thông tin v Git và Github. Có kh năng giải thích chi tiết
giao din s dng ca mt project trên Github. Hiu các lnh được s dng trong
Git để có th s dng Git ln Github nhun nhuyn hơn. Rồi t đó mi thành viên
trong nhóm đều trang b đưc thêm cho mình mt công c h tr đắc lc trên con
đưng tr thành lp trình viên, mt cách chuyên nghip và hiu qu hơn.
II. Bng phân công công vic
18
STT
H và tên
Nhim v
1
Trn Tun V
- Tìm hiu v lch s ra đời, lý do ra đời,
h điu hành h tr, mt s ví d thc
tế các công ty ln dùng git để lưu trữ
source
2
Lê Văn Phú
- Tìm hiu v mt s khái niệm cơ bản
ca git, các câu lệnh cơ bản + mt s
lnh nâng cao
3
Cao Quảng An Hưng
- Tìm hiu v lch s ra đời, lý do ra đời,
khái quát giao din ca Github
4
Nguyn Trn Quang Sang
- Tìm hiu tng quan v git và github ri
tng hp các kiến thc cn thiết vào
file word báo cáo
5
Nguyn Đc Phương
- Quay video thc hin như trong file đề
bài đã mô t và tìm hiu thêm mt s
lnh nâng cao ca git
TÀI LIU THAM KHO
[DVCD là gì ?]
https://vi.theastrologypage.com/distributed-version-control-system
[An introduction to Git]
https://www.freecodecamp.org/news/what-is-git-and-how-to-use-it-c341b049ae61/
[Sơ lược lịch sử Git]
https://yunwuxin1.gitbooks.io/git/content/vi/c8cf03f9bf3367e7d612a0fa058ed068/
96dd76f56bddcac80d652d744479d194.html
[Git and Github introduction]
https://www.w3schools.com/git/git_intro.asp?remote=github#:~:text=Git%20is%2
0a%20popular%20version,Tracking%20code%20changes
[Git on Wikipedia]
https://en.wikipedia.org/wiki/Git#:~:text=13%20External%20links-
,History,maintain%20the%20project%20since%202002.
[Git commands]
https://dzone.com/articles/top-35-git-commands-with-examples-and-bonus
19
[Git branch là gì?]
https://freetuts.net/git-branch-la-gi-branch-master-1072.html
[Git là gì?]
https://topdev.vn/blog/git-la-gi/#3-checkout
[Tìm hiểu thêm về git]
https://csc.edu.vn/lap-trinh-va-csdl/tin-tuc/kien-thuc-lap-trinh/Git-la-gi--Nhung-
khai-niem-co-ban-khi-lam-viec-tren-Git-4133
[Git và những lệnh cơ bản]
https://viblo.asia/p/nhung-dieu-can-biet-ve-git-va-nhung-lenh-co-ban-tren-git-
6J3ZgNOqKmB
[Git và những tính năng cơ bản]
https://www.slideshare.net/hp23192/gii-thiu-git-v-mt-s-tnh-nng-c-bn
[Git và những thuật ngữ cơ bản]
https://ilook.asia/thu-thuat/kien-thuc-ve-git-phan-1-nhung-khai-niem-va-thuat-ngu-
co-ban-ve-git-90.html
[Features, Commands and Workflow in Git]
https://www.simplilearn.com/tutorials/git-tutorial/what-is-git
| 1/19

Preview text:

ĐẠ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 1 MỤ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 đến là 2
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 3
+ 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 4
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 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: 5
+ 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
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
- 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. 7
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 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.
- 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” 8 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 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 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 9
- 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 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
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 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 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 10
- 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 9. git rm
- Xoá một file cừ code base - Cú pháp: git rm 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 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 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 4. git archive 11
- 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 7. git mv
- Đổi tên cũ của git file sang tên mới - Cú pháp: git mv 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, 12
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 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". 13
- Đ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: 14
- 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 Nhiệm vụ 1 Trần Tuấn 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 2 Lê Văn Phú
- 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 3 Cao Quảng An Hưng
- Tìm hiểu về lịch sử ra đời, lý do ra đời,
khái quát giao diện của Github 4 Nguyễn Trần Quang Sang
- 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 5 Nguyễn Đức Phương
- 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ì ?]
https://vi.theastrologypage.com/distributed-version-control-system [An introduction to Git]
https://www.freecodecamp.org/news/what-is-git-and-how-to-use-it-c341b049ae61/ [Sơ lược lịch sử Git]
https://yunwuxin1.gitbooks.io/git/content/vi/c8cf03f9bf3367e7d612a0fa058ed068/
96dd76f56bddcac80d652d744479d194.html [Git and Github introduction]
https://www.w3schools.com/git/git_intro.asp?remote=github#:~:text=Git%20is%2
0a%20popular%20version,Tracking%20code%20changes [Git on Wikipedia]
https://en.wikipedia.org/wiki/Git#:~:text=13%20External%20links-
,History,maintain%20the%20project%20since%202002. [Git commands]
https://dzone.com/articles/top-35-git-commands-with-examples-and-bonus 18 [Git branch là gì?]
https://freetuts.net/git-branch-la-gi-branch-master-1072.html [Git là gì?]
https://topdev.vn/blog/git-la-gi/#3-checkout [Tìm hiểu thêm về git]
https://csc.edu.vn/lap-trinh-va-csdl/tin-tuc/kien-thuc-lap-trinh/Git-la-gi--Nhung-
khai-niem-co-ban-khi-lam-viec-tren-Git-4133
[Git và những lệnh cơ bản]
https://viblo.asia/p/nhung-dieu-can-biet-ve-git-va-nhung-lenh-co-ban-tren-git- 6J3ZgNOqKmB
[Git và những tính năng cơ bản]
https://www.slideshare.net/hp23192/gii-thiu-git-v-mt-s-tnh-nng-c-bn
[Git và những thuật ngữ cơ bản]
https://ilook.asia/thu-thuat/kien-thuc-ve-git-phan-1-nhung-khai-niem-va-thuat-ngu- co-ban-ve-git-90.html
[Features, Commands and Workflow in Git]
https://www.simplilearn.com/tutorials/git-tutorial/what-is-git 19