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

Tìm hiểu về công cụ 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 (575.83 KB, 17 trang )

I. Vậy GIT là gì?
Để tìm hiểu về GIT, trước tiên chúng ta phải tìm hiểu về VCS trước.
VCS - Version Control System (Hệ thống quản lý phiên bản). VCS sẽ lưu
lại toàn bộ mã nguồn và ghi chép đầy đủ trạng thái thay đổi của các file, với
từng trạng thái thay đổi mỗi file, đều được log lại thành một phiên bản.
Lưu ý: VCS ám chỉ 1 dạng hệ thống, chứ không phải tên 1 hệ thống cụ thể.

Hiểu một cách đơn giản, GIT là hệ thống quản lý các phiên bản dưới dạng
phân tán. Đây là hệ thống quản lý phổ biến nhất hiện nay. GIT là một phiên bản
của Distributed Version Control System – DVCS hay còn gọi là VCS. Sử dụng
GIT sẽ đem tới cho các lập trình viên một kho lưu trữ, trong đó chứa đầy đủ các
lịch sử thay đổi của hệ thống. 

II. Cách thức hoạt động của Git 
GIT là một VCS. Tuy nhiên, so với các VCS thơng thường, GIT cũng có
một số điểm khác biệt. Trong đó, điểm khác biệt nổi bật nhất của GIT đó là cách
đọc và lưu trữ dữ liệu của phần mềm này. 
Về mặt khái niệm, hầu hết các hệ thống lưu trữ thông tin bằng cách thay
đổi dựa trên file và lưu trữ thông tin dưới dạng danh sách. Hệ thống này sẽ tổng


hợp và cập nhật thơng tin, sau đó lưu trữ dưới dạng một tập hợp danh sách. Các
file có thể thay đổi theo thời gian.

Tuy nhiên, cách hoạt động và lưu trữ thơng tin của GIT lại hồn tồn
khác. Để lưu trữ thông tin, GIT sẽ coi các thông tin là một tập hơn snapshot.
Đây là tập hợp toàn bộ ảnh chụp các nội dung của file thông tin tại thời điểm. 
Khi bạn đưa ra các lệnh, GIT sẽ chụp lại thơng tin ở thời điểm đó và tạo
ra một snapshot. Để nâng cao tính hiệu quả, GIT sẽ khơng lưu trữ file nếu các
tệp khơng có sự thay đổi. Thay vào đó, phần mềm sẽ liên kết dữ liệu tới một tệp
giống với file đã được lưu trữ trước đó.  


Nhờ vào điểm khác biệt với các VCS này, GIT sẽ không tốn nhiều thời
gian xem xét các thông tin, các bản giải mã của phiên bản/hệ thống trước. Thay
vào đó, GIT nghĩ về dữ liệu khác đi, giúp việc lưu trữ dễ dàng hơn. Với cách lưu
trữ thông minh này, GIT giống như một hệ thống gồm nhiều tệp nhỏ khác nhau. 

III. Vai trò của GIT trong việc phát triển phần mềm
Ngày nay, bất kỳ dự án phần mềm nào cũng nên áp dụng GIT, vì GIT
giúp giải quyết một số vấn đề quan trọng sau:


Là nơi lưu trữ source code
Hãy tưởng tượng GIT là một “đám mây” lưu trữ như Google Drive, Dropbox,
tuy nhiên GIT được thiết kế riêng để lưu trữ source code
Quản lý phiên bản source code
Hãy tưởng tượng bạn đang phát triển một sản phẩm có rất nhiều người sử
dụng. Vì sản phẩm có nhiều người dùng, nên u cầu tính ổn định phải cực kỳ
cao. Vì u cầu tính ổn định cao, nên bạn không được phép code trực tiếp vào
phiên bản source code đang chạy ổn định, mà phải code vào một phiên bản khác
– gọi là phiên bản dev. Trong lúc bạn đang code ở phiên bản dev, thì phiên bản
chạy ổn định vẫn có các cập nhật hằng ngày. Vậy vấn đề gặp phải là làm sao để
có thể phát triển được nhiều phiên bản source cùng lúc. Thì với GIT, việc phát
triển nhiều phiên bản cùng lúc vô cùng dễ dàng, việc code thêm ở phiên bản này
sẽ không ảnh hưởng tới code ở phiên bản khác.
Có thể merge code (ghép code) từ nhiều người
Đây chính là một trong những lý do quan trọng nhất khiến người ta sử
dụng VCS nói chung và GIT nói riêng. Với GIT, việc merge code từ nhiều
người có thể diễn ra tự động, nếu trong quá trình merge code mà có xảy ra xung
đột (mà GIT gọi là conflict) thì GIT sẽ cảnh báo để chúng ta biết.



IV. Lợi ích sử dụng phần mềm GIT
Sau khi tìm hiểu GIT là gì và cách hoạt động của GIT và vai trò của GIT,
chúng ta đã thấy được sự khác biệt và ưu điểm của phần mềm này so với các
VCS thơng thường. Vì thế, việc sử dụng GIT để lưu trữ, kiểm soát phiên bản là
cực kỳ cần thiết. Sử dụng GIT sẽ không tạo ra xung đột giữa các lập trình viên
khi thực hiện code hệ thống.

Ngồi ra, với việc các dự án thường xuyên có thay đổi, sử dụng GIT sẽ giúp nhà
phát triển có thể dễ dàng tìm lại, quay lại các phiên bản cũ hơn. Việc kiểm soát
sẽ cực kỳ đơn giản và hiệu quả.
GIT cũng có các lợi ích tuyệt vời đối với các dự án đang chạy song song. Đặc
biệt là các dự án có cùng một cơ sở code. Việc sử dụng GIT sẽ giúp phân nhánh
tốt hơn. Qua đó giúp việc thực hiện các dự án dễ dàng và hiệu quả hơn:


Thao tác thực hiện nhanh, gọn, lẹ hơn, việc sử dụng an tồn hơn.



Người dùng có thể dễ dàng kết hợp các nhánh với nhau. Qua đó giúp đơn
giản hóa quy trình code theo nhóm. 



Khi sử dụng GIT, người dùng chỉ cần sử dụng clone mã nguồn từ khoa
chứa/phiên bản nào đó có sẵn trong kho lưu trữ/ một nhánh trong kho lưu


trữ. Hệ thống lưu trữ chính xác sẽ cho phép bạn có thể làm việc bất cứ lúc
nào, ở bất cứ đâu. 



Giờ đây, việc lập trình các dự án song song sẽ cực kỳ dễ dàng, hiệu quả
và chính xác.

V. Các lệnh Git cơ bản
Git được chia thành nhiều lệnh, từ đơn giản đến phức tạp.

1. Câu lệnh cơ bản trong github
Git config
Lệnh Git Config được sử dụng để thiết lập tên đăng nhập và email của
người dùng trong main configuration file. Bạn có thể dễ dàng kiểm tra tên và
kiểu email bằng cách dùng lệnh: git config – global user.name và git config – 
global user.email. 


Để cập nhật một tên và email mới, bạn có thể dùng lệnh git config – global
user.name/email = “tên/email”. 
Git init
Bạn có thể dùng lệnh Git init để tạo ra một git repository trong 1 dự án
mới hoặc đã có sẵn. Lệnh này được sử dụng trong thư mục gốc của dự án. 
Git clone
Lệnh Git clone cho phép người dùng Copy 1 git repository từ kho lưu trữ
từ xa. Bạn chỉ cần dùng lệnh: git clone <:clone git url:>. 
Git status
Lệnh git status được sử dụng khi người dùng cần check trạng thái của các
file đã được sửa đổi trong thư mục trong quá trình làm việc. Chẳng hạn như bạn
có thể kiểm tra các thay đổi từ lần commit gần đây nhất. 



Git add
Git Add được sử dụng khi cần đổi Stage hoặc index đến thư mục bạn
đang làm việc. 
Git commit
Đây là lệnh cực kỳ phổ biến và bạn không thể bỏ qua khi tìm hiểu Git là
gì. Git commit có tác dụng giúp Git lưu lại một ảnh chụp màn hình/snapshot đối
với các thay đổi trong thư mục trong quá trình làm việc với Git. 
Với Git, khi Commit, các thay đổi sẽ được tự động lưu lại và thường nằm
trong mục Staging Area. Trong hệ thống cũng sẽ lưu lại tên người chỉnh sửa để
người dùng có thể dễ dàng theo dõi. Hệ thống cũng sẽ lưu trữ tên và email của
người thực hiện chính sửa. Bạn cũng có thể khơi phục lại các tệp tin và chuyển
sang một nhánh khác. 
Git push/git pull
Lệnh Push hay pull cho phép người sử dụng có thể thay đổi tới các kho
lưu trữ remote. Nếu bạn đã thêm các thay đổi và muốn đưa các thay đổi đó lên
đầu, bạn có thể dùng lệnh này để cập nhật và apply các thay đổi đó thơng qua
việc code. Bạn có thể dùng bằng code: git pull <:remote:> <:branch:> and git
push <:remote:> <:branch:>. 
Git branch
Bạn có thể dùng lệnh Git branch để liệt kê tất cả các nhánh trong hệ
thống. Cách dùng rất đơn giản, bạn có thể dùng Git Branch hoặc Git Branch-a. 
Git checkout
Lệnh git checkout thường bị nhầm với lệnh git branch. Tuy nhiên, đây lại
là 2 lệnh hoàn tồn khác nhau. Lệnh Checkout cho phép người dùng có thể
chuyển sang một nhánh khác bằng cách dùng code: git checkout <: branch:>
hoặc ** _ git checkout -b <: branch:>. 


Bạn có thể dùng lệnh Git branch để liệt kê tất cả các nhánh trong hệ thống
Git stash

Git stash cũng là lệnh được rất nhiều người quan tâm khi tìm hiểu git là
gì. Đây là lệnh có tác dụng lưu các thay đổi trong trường hợp bạn không muốn
commit ngay lúc đó. Bạn chỉ cần sử dụng lệnh này trong thư mục làm việc để
thực hiện việc lưu thay đổi. 
Git merge
Lệnh git stash được sử dụng khi người dùng cần nối 2 nhánh với nhau.
Bạn cần dùng code: git merge <:branch_ban_muon_merge:>. Hãy lưu ý chọn
nhánh cần chọn trước khi code nhé. 
Git reset
Nếu bạn đã đưa một tệp tin vào mục Staging Area và muốn loại bỏ tệp tin
đó, bạn có thể dùng lệnh reset thông qua đường code: git reset HEAD tên_file.
Git remote
Git remote cho phép người dùng kiểm tra hoặc thêm các kho lưu trữ trực
tuyến. Bạn có thể sử dụng lệnh này để liệt kê thông qua đường code: git remote
add <: remote_url:>. 


Git add
Thêm một lệnh Git add. Tuy nhiên, lệnh git add này sẽ được sử dụng để
đưa tệp tin vào khu vực staging. Khi tìm hiểu git là gì, bạn cần lưu ý sự khác
biệt giữa 2 lệnh git add để sử dụng chính xác.
Để thêm tệp tin, bạn có thể chọn git add tên file hoặc all nếu muốn thêm tất cả
các file có trong thư mục. 

2. Một số các thuật ngữ quan trọng liên quan đến Git
Trong quá trình tìm hiểu GIT là gì, chắc chắn khơng thể bỏ qua các thuật ngữ
quan trọng. Đây là phần mềm sử dụng nhiều thuật ngữ khác nhau. Bạn cần nắm
rõ các thuật ngữ này để việc sử dụng GIT hiệu quả nhất.
Branch
Trong GIT, Branch được hiểu là các nhánh. Các Branch sẽ tương ứng với

các phiên bản cụ thể trong kho lưu trữ. Branch cho phép người dùng có thể dễ
dàng truy cập, theo dõi các thay đổi của các phiên bản, từ đó thử nghiệm hoặc
lựa chọn sử dụng phiên bản cũ hơn. 
Commit
Commit là một thuật ngữ cực kỳ quen thuộc trong Git. Vậy commit trong
git là gì? Hiểu một cách đơn giản, commit là thuật ngữ thể hiện một thời điểm
cụ thể trong lịch sử thực hiện code của bạn. Các dự án sẽ có nhiều thời điểm cụ
thể trong lịch sử nên sẽ có nhiều code. Khi sử dụng git, bạn có thể dùng lệnh
commit kết hợp với lệnh git add để kiểm tra các thay đổi và lưu trữ trong local
repository. 


Commit là một thuật ngữ cực kỳ quen thuộc trong Git
Check out
Khi sử dụng git, các lập trình viên sẽ dùng lệnh checkout để chuyển giữa
các nhánh hay còn gọi là các branch. Chỉ cần nhập lệnh git checkout + tên
Branch, bạn đã có thể chuyển đến nhánh mong muốn. Đồng thời, lệnh check out
cũng cho phép người dùng chuyển về branch (master Branch). 
Fetch
Sử dụng lệnh Fetch sẽ cho phép bạn nạp và tải các bản sao trên hệ thống
lưu trữ và tải các tệp nhánh về máy tính cá nhân. Bạn có thể sử dụng lệnh Fetch
để lưu các thay đổi mới nhất vào kho lưu trữ. Fetch cho phép bạn có thể lưu trữ
nhiều nhánh trong cùng một thời điểm. 
Fork
Fork là thuật ngữ thể hiện các bản sao của một kho lưu trữ. Tiện ích fork
cho phép người dùng – các lập trình viên có thể thử nghiệm các thay đổi. Nhờ
việc sử dụng trên bản sao nên người dùng có thể thoải mái thay đổi mà khơng lo
ảnh hưởng tới các dự án chính. 



Head
Các nhánh trong Git sẽ bao gồm các commit. Và các commit ở đầu 1
nhánh sẽ được gọi là Head. Một head sẽ tương ứng với một commit mới nhất
trong hệ thống lưu trữ. 
Index
Index là thuật ngữ được sử dụng khi bạn thêm/xóa/thay đổi một file dữ
liệu nào đó. Tuy nhiên, file dữ liệu này vẫn sẽ cần nằm trong thư mục cho đến
khi bạn sẵn sàng commit các thay đổi. Bạn có thể phân biệt các thay đổi dựa vào
màu sắc của commit. Các thay đổi có màu xanh tức là đã sẵn sàng để được thay
đổi, còn màu đỏ là chưa sẵn sàng. 

Index là thuật ngữ được sử dụng khi bạn thêm/xóa/thay đổi một file dữ liệu nào
đó


Master
Master trong Git là gì? Đây là các nhánh chính trong kho lưu trữ của
phần mềm Git mà bạn đang sử dụng. Nhánh master sẽ bao gồm các thay đổi và
commit trong thời gian gần đây nhất. 


Merge
Trong Git, người dùng có thể dùng lệnh Git Merge để bổ sung các thay
đổi từ branch này sang branch khác. Người dùng chỉ cần dùng lệnh Merge và
pull requests là đã có thể dễ dàng kéo các yêu cầu từ các nhánh khác nhau. 
Origin
Đây là phiên bản mặc định của hệ thống lưu trữ. Origin sẽ đóng vai trị
liên lạc với nhánh chính. Vì thế, người dùng có thể dùng lệnh Git push Origin
master để thay đổi tới nhánh chính. Việc thay đổi có thể diễn ra cục bộ.


Pull
Thuật ngữ Pull trong Git là gì? Hiểu một cách đơn giản, Pull là việc
người dùng đề xuất các thay đổi mới cho Master Branch. Đây là tính năng phù
hợp với các dự án cần làm việc nhóm. Người thực hiện có thể dùng tính năng


Pull Request để yêu cầu người có nhiệm vụ thực hiện bảo trì kho lưu trữ để xem
xét các thay đổi của hệ thống. 
Người dùng có thể dùng lệnh Git Pull để thay đổi lịch sử lưu trữ vào các nhánh
chính. 
Push
Lệnh Push được sử dụng khi người lập trình cần cập nhật các branch từ
xa. Đồng thời, Git Push cũng được dùng cho những thay đổi mới nhất mà người
sử dụng đã commit.
Rebase
Nếu muốn phân tích, di chuyển các commit, rebase sẽ là lệnh phù hợp.
Bạn cũng có thể sử dụng lệnh Git rebase để thoát khỏi commit hoặc hợp nhất 2
nhánh khác nhau.
Remote
Remote cũng là một kho lưu trữ. Tuy nhiên, đây là kho lưu trữ từ xa.
Remote là một bản sao của một nhánh, có cấu trúc giao tiếp ngược dòng với
nhánh gốc cũng như các nhánh khác có trong kho lưu trữ. 
Repository
Đây là thuật ngữ thể hiện kho lưu trữ GIT với các tập của dự án. Trong
kho lưu trữ Repository có thể chứa các branch, tags và các commit. 


Stash
Lệnh Stash cho phép người dùng có thể loại bỏ các thay đổi hiện có tại
mục đang lựa chọn. Sau đó, bạn có thể xóa các stashes. Trong trường hợp bạn

muốn tạm dừng hoạt động của mình trong thời gian ngắn, lệnh Stash sẽ là lựa
chọn hữu ích dành cho bạn.  
Tags
Các tags được sử dụng để theo dõi commit quan trọng trong hệ thống.
Người dùng có thể sử dụng các tags để chú thích commit, giúp việc tra cứu đối
tượng nhanh chóng và đầy đủ hơn. 
Upstream
Upstream là thuật ngữ để chơi nơi bạn có thể push các thay đổi trong nhóm
chính. 


VI. Một số lưu ý khi làm việc với Git
Dù Git khơng khó sử dụng nhưng để nhớ tất cả các lệnh là việc không hề đơn
giản. Để giúp việc thực hiện đạt hiệu quả cao, bạn cần lưu ý:  


Git Cheet Sheets: Các lệnh trong Git rất nhiều. Vì thế, nếu mới sử dụng và
không thể nhớ tất cả các lệnh, bạn có thể dùng Git Cheet Sheets. Đây là
các website cung cấp git tự động. 



Commit thường xuyên: Bạn nên thực hiện việc commit thường xuyên để
các thành viên dễ dàng code, tích hợp với nhau, tránh lỗi khi kết hợp. 



Test rồi mới commit: Trước khi commit, bạn cần test để hoàn tất process.
Việc test cần được thực hiện trước khi chia sẻ với những người khác. 




Viết ghi chú khi commit: Bạn có thể viết các ghi chú để những người
khác biết được tiến độ, công việc bạn đang thực hiện. Mô tả càng chi tiết
việc thực hiện càng dễ dàng. 



Thử nghiệm Branch khác: Bạn có thể sử dụng một nhánh khác để test. 



Theo một Git Workflow: Sử dụng git workflow sẽ giúp cả nhóm hiểu
nhau hơn và thực hiện việc hiệu quả hơn.




×