Thẻ học Git

Nhà tài trợ chuyên mục

Git là một hệ thống kiểm soát phiên bản phân tán được tạo ra bởi Linus Torvalds. Đây là một công cụ được thiết kế cho tốc độ, tính toàn vẹn dữ liệu và hỗ trợ cho các quy trình làm việc phân tán, phi tuyến. Git có tính linh hoạt và hiệu quả, cho phép quản lý hiệu quả cả các dự án phần mềm nhỏ và lớn. Hệ thống này cung cấp các chức năng phân nhánh và hợp nhất tiên tiến, cung cấp cho các nhà phát triển các công cụ để hợp tác hiệu quả, theo dõi thay đổi và quản lý mã nguồn. Git cũng hỗ trợ làm việc ngoại tuyến và chuyển đổi nhanh chóng giữa các phiên bản dự án, duy trì tính đáng tin cậy và cho phép khôi phục lịch sử thay đổi dễ dàng.

Ứng dụng thẻ học của chúng tôi bao gồm các câu hỏi phỏng vấn Git được chọn lọc kỹ lưỡng với câu trả lời chi tiết sẽ chuẩn bị hiệu quả cho bạn cho bất kỳ cuộc phỏng vấn nào yêu cầu kiến thức về Git. IT Flashcards không chỉ là một công cụ cho những người tìm việc - đó là một cách tuyệt vời để củng cố và kiểm tra kiến thức của bạn, bất kể kế hoạch nghề nghiệp hiện tại của bạn là gì. Sử dụng ứng dụng thường xuyên sẽ giúp bạn cập nhật với những xu hướng Git mới nhất và giữ kỹ năng của bạn ở mức cao.

Thẻ học Git mẫu từ ứng dụng của chúng tôi

Tải xuống ứng dụng của chúng tôi từ App Store hoặc Google Play để nhận thêm flashcard miễn phí hoặc đăng ký để truy cập vào tất cả flashcard.

Branch trong Git là gì và nó được sử dụng như thế nào trong quá trình phát triển phần mềm?

Một nhánh, cũng được gọi là một nhánh trong Git, là một dòng phát triển độc lập của một dự án. Nó được tạo ra khi chúng ta muốn làm việc với các tính năng mới hoặc sửa lỗi, mà không ảnh hưởng đến dòng phát triển chính (nhánh chính). Việc tạo nhánh cho phép nhiều phiên bản của một dự án được chạy đồng thời, điều này rất hiệu quả nếu nhiều nhà phát triển đang làm việc trên một dự án.

Việc sử dụng chính của nhánh trong quá trình phát triển phần mềm là chuỗi sau: tạo một nhánh mới, thêm thay đổi, lưu thay đổi, và sau đó hợp nhất những thay đổi đó với nhánh chính.

Ví dụ sau đây cho thấy các thao tác cơ bản có thể được thực hiện trên nhánh.
# Tạo một nhánh mới
git branch new_feature

# Chuyển đổi giữa các nhánh
git checkout new_feature

# Thêm thay đổi vào nhánh
# (...) thực hiện một số thay đổi vào file
git add .
git commit -m "Thêm chức năng mới"

# Quay lại nhánh master và hợp nhất thay đổi từ nhánh new_feature
git checkout master
git merge new_feature

# Xóa nhánh sau khi hoàn thành công việc
git branch -d new_feature

Nhờ có nhánh trong Git, chúng ta có khả năng làm việc độc lập trên các phần khác nhau của dự án, sau đó chúng ta có thể hợp nhất vào bất kỳ thời gian nào.

Mô tả sự khác biệt giữa các lệnh git merge và git rebase.

Lệnh git merge được sử dụng để kết hợp hai hoặc nhiều nhánh trong một dự án. Khi bạn thực thi git merge, Git tạo ra một commit mới bao gồm các thay đổi từ cả hai nhánh. Ưu điểm của git merge là lịch sử của dự án được bảo tồn trong trạng thái gốc của nó. Nó tạo ra một con đường theo thời gian của các sự kiện, làm cho việc hiểu những gì đã xảy ra trở nên dễ dàng hơn.

Mặt khác, git rebase được sử dụng để di chuyển hoặc "áp dụng" một loạt commit đến một cơ sở mới. Điều này được sử dụng khi bạn muốn duy trì một biểu đồ lịch sử tuyến tính của dự án. Khi bạn thực hiện git rebase, Git 'dán' các thay đổi của bạn lên trên nhánh được chọn. Chúng ta có thể nói rằng git rebase theo một cách nào đó 'dọn dẹp' lịch sử của các commit, có thể dẫn đến mất ngữ cảnh nếu một việc hòa nhập/xung đột được hiểu lầm và giải quyết không tốt.

Cơ bản, git merge được sử dụng để kết hợp các nhánh và bảo tồn con đường lịch sử của dự án, trong khi git rebase cho phép duy trì một biểu đồ dự án tuyến tính, nhưng với giá là mất ngữ cảnh. Cả hai phương pháp đều có ưu và nhược điểm của riêng, sự lựa chọn phụ thuộc nhiều vào tình huống cụ thể.

HEAD tách rời là gì và làm thế nào để đạt được điều đó khi làm việc với Git?

"Detached HEAD" là trạng thái mà HEAD trong Git không được gắn kết với bất kỳ nhánh cụ thể nào. Tình trạng này có thể so sánh với tình huống mà các thay đổi của chúng ta không được lưu trữ trên bất kỳ nhánh cụ thể nào.

Có nhiều cách để nhận được "detached HEAD". Điều này thường xảy ra trong quá trình kiểm tra sang commit khác, ví dụ:
git checkout <commit_id>

Tuy nhiên, chúng ta cũng có thể đạt được trạng thái này trong quá trình thực hiện các hoạt động như rebase hoặc cherry-pick mà không thành công.

Git chỉ đến trạng thái này với thông báo:
Lưu ý: kiểm tra 'commit_id'.
Bạn đang trong trạng thái 'detached HEAD'.

"Detached HEAD" không phải là trạng thái nguy hiểm, nó là một phần tự nhiên của việc làm việc với Git. Tuy nhiên, điều quan trọng là phải lưu thay đổi mà chúng ta đã thực hiện trong trạng thái "detached HEAD" trước khi chuyển sang commit hoặc nhánh khác. Chúng ta có thể thực hiện điều này bằng cách tạo một nhánh mới, nguồn của đó sẽ là "detached HEAD" của chúng ta. Chúng ta sẽ thực hiện điều này với lệnh:
git branch tên_nhánh_mới

Làm thế nào bạn có thể di chuyển các commit gần đây từ một nhánh này sang nhánh khác?

Để chuyển các commit cuối cùng từ một nhánh sang nhánh khác, bạn có thể sử dụng lệnh `git cherry-pick`. Trong ngữ cảnh của GIT, cherry picking nghĩa là chọn một commit tùy ý từ một nhánh và áp dụng nó vào nhánh khác.

Bước đầu tiên là chuyển sang nhánh từ đó chúng ta muốn chuyển các commit (hãy gọi nó là nhánh A):
git checkout nhánh A

Sau đó, chúng ta cần xác định hash của các commit mà chúng ta muốn chuyển. Chúng ta có thể làm điều này bằng cách sử dụng lệnh `git log`, sẽ hiển thị một danh sách các commit cho nhánh này. Mã hash commit là một chuỗi ký tự dài ở đầu mỗi mục commit.

Tiếp theo, chúng ta chuyển sang nhánh mà chúng ta muốn chuyển các commit (hãy gọi nó là nhánh B):
git checkout nhánh B

Cuối cùng, chúng ta sử dụng lệnh `git cherry-pick` cùng với mã hash commit mà chúng ta muốn chuyển:
git cherry-pick commit-hash

Nếu chúng ta muốn chuyển nhiều commit, chúng ta có thể cung cấp các mã hash của chúng một sau một, được phân tách bằng một dấu cách.

Tải xuống IT Flashcards Ngay bây giờ

Mở rộng kiến thức Git của bạn với các thẻ học của chúng tôi.
Từ các nguyên tắc lập trình cơ bản đến nắm vững các công nghệ tiên tiến, IT Flashcards là hộ chiếu để bạn đạt được xuất sắc trong CNTT.
Tải xuống ngay và mở khóa tiềm năng của bạn trong thế giới công nghệ cạnh tranh ngày nay.