Git là gì? Trên tay "Bảng Cửu Chương Git"

Ngày đăng: 08/11/2019   -    Cập nhật: 14/04/2021
Git công cụ kiểm soát phiên bản dành cho hầu hết các lập trình viên vì nó cho phép họ quản lý hiệu quả mã nguồn và theo dõi các thay đổi trong khi cùng làm việc với các lập trình viên khác.


Trên thực tế, Git có rất nhiều cách sử dụng nên việc ghi nhớ các lệnh khác nhau của nó có thể khá là khó khăn, đó là lý do tại sao mình đã tạo ra "Bảng Cửu Chương Git" này.


Hướng dẫn này bao gồm phần giới thiệu về Git, bảng chú giải thuật ngữ và danh sách các lệnh Git thường được sử dụng.


Mục lục bài viết:

 

 



Cho dù bạn gặp khó khăn khi bắt đầu với Git, hoặc nếu bạn là một lập trình viên có kinh nghiệm cần tua lại kiến thức về Git thì bạn đều có thể sử dụng "Bảng Cửu Chương Git" này.


Git là gì? Bảng cửu chương Git

Git là gì? Bảng cửu chương Git


Đệ nhất chương: Git là gì?



Nếu bạn làm việc trong lĩnh vực lập trình web hoặc lập trình phần mềm nói chung, thì có lẽ bạn đã từng sử dụng Git.


> Hoặc nếu đang tích cực học để làm lập trình viên thì tham khảo ngay: KHÓA HỌC LẬP TRÌNH (Full Stack)


Nó vẫn là hệ thống kiểm soát các phiên bản phân tán mã nguồn mở được sử dụng rộng rãi nhất trong hơn một thập kỷ sau khi phát hành lần đầu (năm 2005)


Không giống như các hệ thống kiểm soát phiên bản khác lưu trữ lịch sử phiên bản đầy đủ của dự án tại một nơi. Git cung cấp cho mỗi lập trình viên kho lưu trữ (repository) riêng chứa toàn bộ lịch sử thay đổi.


Mặc dù cực kỳ mạnh mẽ, nhưng Git có một số cú pháp / lệnh phức tạp có thể gây nhầm lẫn lúc mới tìm hiểu.


Tuy nhiên, một khi đã va vào nó, Git cũng rất dễ hiểu mà thôi.



Đệ nhị chương: 19 thuật ngữ Git Quan trọng



Trước khi bắt đầu với Git, bạn cần hiểu một số thuật ngữ Git quan trọng đã:


1. Branch



Các Branch (nhánh) đại diện cho các phiên bản cụ thể của một kho lưu trữ tách ra từ project chính của bạn.


Branch cho phép bạn theo dõi các thay đổi thử nghiệm bạn thực hiện đối với kho lưu trữ và có thể hoàn nguyên về các phiên bản cũ hơn.



2. Commit



Một commit đại diện cho một điểm cụ thể trong lịch sử dự án của bạn.


Sử dụng lệnh commit kết hợp với lệnh git add để cho git biết những thay đổi bạn muốn lưu vào kho lưu trữ cục bộ (local repository). Lưu ý rằng các xác nhận không được tự động gửi đến máy chủ từ xa.



3. Checkout



Sử dụng lệnh git checkout để chuyển giữa các branch.


Chỉ cần nhập git checkout theo sau là tên của branch bạn muốn chuyển đến hoặc nhập git checkout master để trở về branch chính (master branch).


Hãy nhớ những commit của bạn khi bạn chuyển đổi giữa các branch.



4. Fetch



Lệnh git fetch tìm nạp các bản sao và tải xuống tất cả các tệp branch vào máy tính của bạn.


Sử dụng nó để lưu các thay đổi mới nhất vào kho lưu trữ của bạn. Nó có thể tìm nạp nhiều branch cùng một lúc.



5. Fork



Một fork là một bản sao của một kho lưu trữ. Các lập trình viên thường tận dụng lợi ích của fork để thử nghiệm các thay đổi mà không ảnh hưởng đến dự án chính.


6. Head



Các commit ở đầu của một branch được gọi là head. Nó đại diện cho commit mới nhất của kho lưu trữ mà bạn hiện đang làm việc.


7. Index



Bất cứ khi nào bạn thêm, xóa hoặc thay đổi một tệp, nó vẫn nằm trong chỉ mục cho đến khi bạn sẵn sàng commit các thay đổi.


Hãy nghĩ về nó như khu vực tổ chức (stagging area) cho Git. Sử dụng lệnh git status để xem nội dung của index của bạn.



Stagging (bước dàn dựng) là một bước sắp xếp trước khi commit trong git.

Một commit trong git được thực hiện theo hai bước: Stagging và commit thực tế. Miễn là những thay đổi nằm trong khu vực tổ chức (stagging area), git cho phép bạn chỉnh sửa nó theo ý muốn (thay thế các tệp được phân đoạn bằng các phiên bản khác của các tệp được phân loại, loại bỏ các thay đổi khỏi phân đoạn, v.v.)


Những thay đổi được tô sáng bằng màu xanh lá cây đã sẵn sàng để được commit trong khi những thay đổi màu đỏ thì chưa.


8. Master

Master (Ảnh: nvie)

Master (Ảnh: nvie)
 


Master là nhánh chính của tất cả các kho lưu trữ của bạn. Nó nên bao gồm những thay đổi và commit gần đây nhất.


9. Merge



Sử dụng lệnh git merge kết hợp với các yêu cầu kéo (pull requests) để thêm các thay đổi từ nhánh này sang nhánh khác.


10. Origin



Origin (Ảnh: nive)

Origin (Ảnh: nvie)


Origin đề cập đến phiên bản mặc định của kho lưu trữ. Origin cũng đóng vai trò là bí danh hệ thống để liên lạc với nhánh chính.


Sử dụng lệnh git push origin master để đẩy các thay đổi cục bộ đến nhánh chính.



11. Pulll



Pull requests thể hiện các đề xuất thay đổi cho nhánh chính. Nếu bạn làm việc với một nhóm, bạn có thể tạo các pull request để yêu cầu người bảo trì kho lưu trữ xem xét các thay đổi và hợp nhất chúng.


Lệnh git pull được sử dụng để thêm các thay đổi vào nhánh chính.



12. Push



Lệnh git push được sử dụng để cập nhật các nhánh từ xa với những thay đổi mới nhất mà bạn đã commit.


13. Rebase



Lệnh git rebase cho phép bạn phân tách, di chuyển hoặc thoát khỏi các commit. Nó cũng có thể được sử dụng để kết hợp hai nhánh khác nhau.


14. Remote



Một Remote (kho lưu trữ từ xa) là một bản sao của một chi nhánh. Remote giao tiếp ngược dòng với nhánh gốc (origin branch) của chúng và các Remote khác trong kho lưu trữ.


15. Repository




Kho lưu trữ Git chứa tất cả các tệp dự án của bạn bao gồm các branch, tags và commit.


16. Stash



Lệnh git stash sẽ loại bỏ các thay đổi khỏi chỉ mục của bạn và xóa stashes chúng đi sau.


Nó có ích nếu bạn muốn tạm dừng những gì bạn đang làm và làm việc khác trong một khoảng thời gian. Bạn không thể đặt stash nhiều hơn một bộ thay đổi ở cùng một thời điểm.



17. Tags



Tags cung cấp cho bạn một cách để theo dõi các commit quan trọng. Các tags nhẹ chỉ đơn giản đóng vai trò là con trỏ trong khi các tags chú thích được lưu trữ dưới dạng các đối tượng đầy đủ.


19. Upstream



Trong ngữ cảnh của Git, upstream đề cập đến nơi bạn push các thay đổi của mình, thường là nhánh chính (master branch).



Xem Git docs reference để biết thêm chi tiết về thuật ngữ liên quan đến Git.


Đệ tam chương: Các lệnh cấu hình Git



Thiết lập username:


git config –global user.name


Thiết lập user email:


git config –global user.email


Tạo một Git command shortcut:


git config –global alias.


Thiết lập trình soạn thảo văn bản yêu thích:


git config –system core.editor


Mở và chỉnh sửa tệp cấu hình global trong trình soạn thảo văn bản:


git config –global –edit


Cấu hình cho phép tô sáng dòng lệnh:


git config –global color.ui auto

 

Đệ tứ chương: Các lệnh để thiết lập kho Git



Tạo một kho lưu trữ trống (empty repository) trong thư mục dự án:


git init


Sao chép một kho lưu trữ từ GitHub và thêm nó vào thư mục dự án:


git clone (repo URL)
 

Sao chép một kho lưu trữ vào một thư mục cụ thể:


git clone (repo URL) (folder)


Hiển thị danh sách các kho lưu trữ từ xa với URL:


git remote -v


Xóa một kho lưu trữ từ xa:


git remote rm (remote repo name)


 
Lấy các thay đổi gần đây nhất từ ​​nguồn gốc (origin) nhưng không hợp nhất:


git fetch


Truy xuất các thay đổi gần đây nhất từ ​​nguồn gốc và hợp nhất:


git pull


 

Đệ ngũ chương: Các lệnh để quản lý thay đổi tệp



Thêm thay đổi tập tin để dàn dựng:


git add (file name)
 

Thêm tất cả các thay đổi thư mục để dàn dựng:


git add .
 

Thêm tệp mới và sửa đổi để dàn dựng:


git add -A


Xóa một tập tin và ngừng theo dõi nó:


git rm (file_name)


Mở khóa tệp hiện tại:


git rm –cached (file_name)


Khôi phục một tập tin đã xóa và chuẩn bị nó cho commit:


git checkout <deleted file name>


Hiển thị trạng thái của các tệp sửa đổi:



git ls-files –other –ignored –exclude-standard


Hiển thị tất cả các thay đổi chưa được sắp xếp trong chỉ mục và thư mục hiện tại:

git diff


Hiển thị sự khác biệt giữa các tệp trong stagging và các phiên bản mới nhất:


git diff –staged
 


Hiển thị các thay đổi trong một tệp so với commit gần đây nhất:


git diff (file_name)

 

Đệ lục chương: Các lệnh để khai báo Git commit



Commit thay đổi cùng với một thông báo tùy chỉnh:


git commit -m "(message)"


Commit và thêm tất cả các thay đổi để dàn dựng:


git commit -am "(message)"


Chuyển sang một commit trong branch hiện tại:


git checkout <commit>


Hiển thị metadata và nội dung thay đổi của một commit:


git show <commit>


Hủy tất cả các thay đổi đối với một commit:


git reset –hard <commit>


Hủy tất cả các thay đổi cục bộ trong thư mục:


git reset –hard Head


Hiển thị lịch sử thay đổi:


git log

 
Bỏ tất cả các tệp đã sửa đổi:


git stash


Truy xuất các tệp đã lưu:


git stash pop


Bỏ tệp trống:


git stash pop


Định nghĩa một tag:


git tag (tag_name)


Push các thay đổi về nguồn gốc (origin):


git push

 

Đệ thất chương: Các lệnh cho phần Git Branch



Hiển thị danh sách tất cả các branch:


git branch


Tạo một branch mới và chuyển sang đó:


git checkout -b <branchname>


Chuyển sang một branch:


git checkout <branchname>



Xóa một branch:


git branch -d <branchname>



Hợp nhất một branch khác với brach active của bạn:


git merge <branchname>


Fetch một branch từ kho lưu trữ:


git fetch remote <branchname>


Xem xung đột hợp nhất giữa các branch:


git diff <sourcebranch> <targetbranch>


Xem trước các thay đổi trước khi hợp nhất các branch:


git diff <sourcebranch> <targetbranch>


Đẩy tất cả các branch cục bộ vào một kho lưu trữ từ xa (remote repository) được chỉ định:


git push –all
 

Đệ bát chương: 6 Mẹo sử dụng Git



Nên nhớ, cho dù bạn biết tất cả các lệnh Git cũng không giúp bạn giỏi hơn nếu không biết cách tận dụng tối đa chúng. Dưới đây là một số cách kiểm soát phiên bản tốt nhất mình nghĩ bạn sẽ cần:

 

Mẹo #1: Commit thường xuyên



Tách nhỏ commit của bạn và commit thường xuyên nhất có thể. Điều này giúp các thành viên trong nhóm dễ dàng tích hợp công việc của họ hơn mà không gặp phải xung đột hợp nhất.

 

Mẹo #2: Test rồi mới commit



Không bao giờ commit nếu chưa hoàn tất quy trình. Cần phải test các thay đổi của bạn trước khi chia sẻ chúng với người khác.


Mẹo #3: Viết ghi chú khi commit



Viết ghi chú khi commit để cho các thành viên khác trong nhóm biết loại thay đổi bạn đã thực hiện. Hãy mô tả càng nhiều càng tốt.


Mẹo #4: Thử nghiệm Branch khác



Tận dụng lợi thế của các branch để giúp bạn theo dõi các dòng phát triển khác nhau.

Hãy tạo để thử nghiệm những ý tưởng mới.



Mẹo #5: Git Workflow



Tham khảo Git Workflow

Tham khảo Git Workflow


Có một số cách khác nhau để thiết lập Git workflow. Nhưng cho dù bạn chọn loại nào, cần đảm bảo cả nhóm của bạn đều cùng thực hiện như nhau.





Mẹo #6: Sử dụng Git Cheet Sheets



Sử dụng các Git Cheet Sheets như là "Bảng cửu chương Git" để dễ dàng tìm được lệnh Git bạn cần:




Đệ cửu chương: Tóm lại về Git



Git giúp ích rất nhiều cho công việc lập trình chung của các nhóm. Kể cả bạn chưa làm việc cộng tác với nhóm thì mình cũng khuyên bạn nên tìm hiểu cơ bản về Git trước khi học bất kỳ ngôn ngữ lập trình nào.




Nhưng trừ khi bạn có siêu trí nhớ, nếu không, việc ghi nhớ tất cả các lệnh Git là rất khó.


Khó quá thì bỏ qua, đừng ghi nhớ tất cả.


Bạn có thể lưu lại bài viết này để tham khảo mỗi khi bạn cần một lệnh cụ thể. Mỗi lần cần lại lôi ra cho đến khi nào não bạn tự động ghi nhớ.


Hoặc bạn có thể tạo bảng Git Cheat Sheets của riêng mình với các lệnh bạn sử dụng thường xuyên nhất. Chúc bạn thành công!



---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0383.180086
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #icthanoi #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python

Bình luận Facebook
Khóa học liên quan đến bài viết

KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS

56 giờ
Học Lập trình Front end hiện đại với ReactJS. Học làm chủ HTML, CSS, JS và thư viện JavaScript phổ biến nhất hiện nay. Sẵn sàng đi thực tập / đi làm ngay sau khóa học.

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!