Assignment Help logo
Trò Chuyện Trực Tuyến

Loading...

Score %0 (0 correct0 incorrect20 unanswered)

Câu 1. Làm thế nào để bạn kiểm tra phiên bản git hiện tại của mình?

  • git --v
  • git --version
  • git --option
  • git --current

Tham khảo

Câu 2. Lệnh nào cho phép bạn tạo một kết nối giữa kho lưu trữ cục bộ và từ xa?

  • git remote add new
  • git remote add origin
  • git remote new origin
  • git remote origin

Tham khảo

Câu 3. Mô tả những lệnh Git này làm gì với lịch sử commit:

git reset --hard HEAD~5
git merge --squash HEAD@{1}
  • Chúng đặt lại HEAD thành commit thứ năm trong kho, sau đó hợp nhất vào nhánh master.
  • HEAD của nhánh hiện tại được đặt lại về năm commit trước đó, sau đó các commit trước đó được nén thành một commit duy nhất.
  • Chúng xóa đi năm commit cuối cùng.
  • Chúng hợp nhất năm commit cuối cùng vào một nhánh mới.

Giải thích:

  • git reset --hard HEAD~5 đặt lại nhánh hiện tại thành commit ngay trước 5 commit cuối cùng (xem man gitrevisions để biết chi tiết về cú pháp này và các tùy chọn thú vị khác như HEAD@{2 days ago}). Vì đây là một đặt lại cứng, nó cũng sẽ ghi đè lên mọi thay đổi trong cây làm việc. Xem man git-reset.
  • git merge --squash HEAD@{1} HEAD@{1} là nơi nhánh vừa trước commit trước đó (một lần nữa, xem man gitrevisions). Lệnh này đặt trạng thái của chỉ mục như nó sẽ ngay sau một hợp nhất từ commit đó. Toàn bộ thao tác này có thể là một cách để lấy 5 commit từ một nhánh trong đó bạn bắt đầu một tính năng mới và nén chúng thành một commit duy nhất, một commit có ý nghĩa.

Tham khảo

Câu 4. Dự án hiện tại của bạn có một số nhánh; master, beta, và push-notifications. Bạn vừa hoàn thành tính năng thông báo trong nhánh push-notification, và bạn muốn commit nó vào nhánh beta. Bạn có thể thực hiện điều này như thế nào?

  • Chuyển sang nhánh push-notifications và chạy git merge beta
  • Chuyển sang nhánh master và chạy git merge beta -> push-notifications
  • Xóa nhánh push-notifications và nó sẽ tự động commit vào nhánh master
  • Chuyển sang nhánh beta và chạy git merge push-notifications

Tham khảo

Câu 5. Điều gì đúng khi bạn sử dụng lệnh sau đây?

git add -A

  • Tất cả các tệp mới và cập nhật được đưa vào khu vực staging
  • Các tệp được đưa vào khu vực staging theo thứ tự bảng chữ cái.
  • Tất cả các tệp mới được đưa vào khu vực staging
  • Chỉ các tệp được cập nhật được đưa vào khu vực staging

Tham khảo Tham khảo

Câu 6. Lệnh sau sẽ in ra gì trên Terminal?

git remote -v

  • Một danh sách các kho lưu trữ từ xa và URL của chúng
  • Phiên bản git hiện tại bạn đang chạy
  • Một trình soạn thảo trực tuyến để chỉnh sửa các kho lưu trữ từ xa
  • Năm phiên bản git cuối cùng bạn đã cài đặt

Tham khảo Tham khảo

Câu 7. Nhìn vào các lệnh sau, mô tả điều gì đang xảy ra.

git checkout feature-user-location
git cherry-pick kj2342134sdf090093f0sdgasdf99sdfo992mmmf9921231
  • Commit đang được đánh dấu để phát hành trên nhánh feature-user-location
  • Một commit được sao chép từ nhánh gốc của nó sang nhánh feature-user-location
  • Commit đang được chọn như HEAD mới của lịch sử commit
  • Một commit được sao chép từ nhánh feature-user-location sang nhánh master
  • Nhánh đang chuyển sang nhánh feature-user-location, và commit được chỉ định được áp dụng cho nhánh.

Giải thích:

'git checkout feature-user-location' chuyển sang nhánh 'feature-user-location'. 'git cherry-pick kj2342134sdf090093f0sdgasdf99sdfo992mmmf9921231' áp dụng các thay đổi từ commit cụ thể đã chỉ định ('kj2342134sdf090093f0sdgasdf99sdfo992mmmf9921231') vào nhánh hiện tại (feature-user-location). Điều này thực tế là sao chép commit từ nhánh gốc của nó sang nhánh feature-user-location. Vì vậy, chuỗi lệnh này là việc chọn lọc một commit cụ thể vào nhánh feature-user-location.

Câu 8. Lệnh sau làm gì với kho lưu trữ git?

git reset --soft HEAD^

  • Nó xóa tất cả các commit trước đó và đặt lại lịch sử kho về trạng thái ban đầu của nó.
  • Nó đặt lại nhánh làm việc về commit đầu tiên.
  • Nó giữ HEAD ở commit hiện tại nhưng xóa tất cả các commit trước đó.
  • Nó đặt HEAD ở commit trước đó và giữ lại các thay đổi từ commit bị hủy trong khu vực staging.

Tham khảo Tham khảo

Câu 9. Bạn tìm thấy một lỗi trong dự án của mình, nhưng không thể xác định nó được giới thiệu vào đâu trong lịch sử commit. Bạn sẽ làm thế nào để chẩn đoán vấn đề này?

  • Theo dõi bằng tay qua lịch sử commit của bạn.
  • Sử dụng git search -diff để so sánh tất cả các commit trong lịch sử kho của bạn.
  • Chạy một git rebase để tìm commit có lỗi.
  • Sử dụng git bisect để so sánh commit có lỗi với một commit sớm mà hoạt động như mong đợi.

Tham khảo Tham khảo

Câu 10. Tại sao bạn sẽ sử dụng lệnh sau đây?

git rebase -i HEAD~10

  • Để chạy một tìm kiếm so sánh của 10 commit cuối cùng để tìm sự khác biệt
  • Để liệt kê 10 commit cuối cùng và sửa đổi chúng với lệnh squash hoặc fixup
  • Để xóa 10 commit cuối cùng và đặt lại HEAD
  • Để lưu trữ cục bộ 10 commit cuối cùng

Tham khảo Tham khảo

Câu 11. Tại sao bạn sử dụng một pre-receive hook trong kho lưu trữ từ xa của bạn?

  • Bạn sẽ không, bạn sẽ sử dụng nó trong kho lưu trữ cục bộ
  • Để thực thi một tập lệnh khi một từ xa nhận được một đẩy được kích hoạt trước khi bất kỳ refs nào được cập nhật
  • Để kích hoạt một tập lệnh sau khi cập nhật vào kho lưu trữ từ xa
  • Để gỡ lỗi tất cả các tag commit và các phiên bản phát hành

Tham khảo Tham khảo

Câu 12. Tùy chọn nào bạn có thể sử dụng để áp dụng cấu hình git trên toàn bộ môi trường git của bạn?

  • --all
  • --master
  • --global
  • --update

Tham khảo Tham khảo

Câu 13. Bạn có thể nén nhiều commit thành một mà không cần sử dụng git merge --squash bằng cách nào?

  • Caching
  • Bạn không thể. git merge --squash là lệnh git duy nhất cho hoạt động đó.
  • Rebasing
  • Reflogging

Tham khảo Tham khảo

Câu 14. Nếu bạn clone một kho lưu trữ git hiện có, điều gì sẽ xảy ra?

  • Một bản sao mới sẽ ghi đè lên kho lưu trữ trung tâm
  • Một bản sao của kho lưu trữ sẽ được tạo trên máy cục bộ của bạn
  • Không gì, việc clone không phải là một chức năng được hỗ trợ của git
  • Một bản sao của kho lưu trữ sẽ được tạo trên nền tảng lưu trữ

Tham khảo Tham khảo

Câu 15. Làm thế nào để hiển thị một danh sách các tệp được thêm hoặc sửa đổi trong một commit cụ thể?

  • Tìm commit trong kho lưu trữ từ xa, vì đó là nơi mà loại thông tin đó được lưu trữ.
  • Sử dụng lệnh diff-tree với mã commit.
  • Chạy git commit --info với mã commit.
  • Truy cập dữ liệu lưu trữ của commit với git stash.

Tham khảo Tham khảo

Câu 16. Tệp .gitignore này được lập trình để bỏ qua những tệp nào?

#.swift
build/

*.txt
*.metadata
  • Tất cả các tệp có phần mở rộng .swift, .txt, hoặc metadata, cũng như toàn bộ thư mục build
  • Chỉ thư mục build
  • Tất cả các tệp trong thư mục build, cũng như các tệp kết thúc bằng .txt hoặc .metadata
  • Chỉ các tệp có phần mở rộng .swift và .txt.

Tham khảo

Một dòng bắt đầu bằng # được sử dụng như một ghi chú. Do đó, # .swift không làm bất cứ điều gì. Xem man gitignore.

Câu 17. Sau khi bạn thực hiện các thay đổi vào kho lưu trữ cục bộ, bạn chạy lệnh sau đây. Điều này sẽ làm gì?

git commit -a -m "Refactor code base"

  • Không có gì, bạn không thể sử dụng nhiều tùy chọn trong cùng một lệnh
  • Thêm tất cả các tệp mới vào khu vực staging
  • Commit tất cả các tệp mới với một thông báo
  • Thêm tất cả các tệp được sửa đổi vào khu vực staging, sau đó commit chúng với một thông báo

Câu 18. Sau khi kiểm tra trạng thái git của bạn, bạn nhận được đầu ra sau đây, chỉ ra rằng tệp beta-notes.js trong commit nhưng cũng chưa được staged. Tình huống này có thể xảy ra như thế nào?

Change to be committed:

(use "git reset HEAD <file>..." to unstage)
modified: beta-notes.js
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout --<file>..." to discard changes in working directory)

modified: beta-notes.js
  • Có hai bản sao của beta-notes.js nhưng một bị xóa
  • beta-notes.js đã được staged, sau đó được sửa đổi sau đó, tạo ra hai phiên bản khác nhau của tệp
  • Hai bản sao của beta-notes.js đã được tạo ra, nhưng chỉ có một đang được theo dõi
  • Có hai bản sao được theo dõi của beta-notes.js, nhưng một đã bị loại bỏ khỏi commit

Tham khảo

Câu 19. Tệp được lưu trữ ở đâu trước khi được commit vào kho lưu trữ cục bộ?

  • Tệp được lưu
  • Tài liệu git
  • Khu vực staging
  • Bộ nhớ cache git

Tham khảo

Câu 20. Bạn sẽ sử dụng những lệnh nào để buộc ghi đè lên các tệp cục bộ của bạn bằng nhánh master?

  git pull --all
  git reset --hard origin/master
  git pull -u origin master
  git reset --hard master
  git pull origin master
  git reset --hard origin/myCurrentBranch
  git fetch --all
  git reset --hard origin/master

Lưu ý: - Lệnh pullfetch theo sau bởi merge hoặc rebase (trong trường hợp này, merge). Chúng ta không muốn hợp nhất. Hợp nhất sẽ là một hành động đối với kho lưu trữ của chúng ta. Chúng ta chỉ muốn ghi đè lên các tệp cục bộ của mình.