100 câu hỏi và câu trả lời phỏng vấn git hàng đầu pdf năm 2022
Bản gốc: Tác giả gốc: John Washam Đóng góp cho bản dịch tiếng Việt: Ghi chú riêng cho việc duy trì và cập nhật bản dịch tiếng Việt: Bản dịch này nhằm mục đích khuyến khích các bạn trẻ yêu thích công nghệ nhưng chưa vững tiếng Anh dễ tiếp cận, và tìm được hướng nghiên cứu. Để đi xa hơn trong ngành công nghệ thông tin (CNTT), sớm hay muộn, bạn cũng cần phải trau dồi vốn tiếng Anh của mình. Vì vậy, các thuật ngữ chuyên ngành, mình xin được giữ nguyên gốc. Ví dụ như: Mình cố gắng dịch thoát nghĩa, sao cho các bạn với ít kiến thức công nghệ thông tin nhất cũng có thể hiểu được. Trong quá trình dịch khó có thể trách khỏi sai sót, xin được lượng thứ. Mọi ý kiến, đóng góp về bản dịch, vui lòng tạo một issue mới hoặc bạn có thể chỉnh sửa và tạo Pull Request, đồng thời cc trực tiếp các dịch giả để kiểm tra. Ban đầu, đây chỉ là một danh sách to-do (danh sách các việc cần làm) ngắn về các chủ đề phải ôn tập của tôi, để trở thành một kỹ sư phần mềm. Nhưng rôi nó lớn dần nên như ngày nay. Sau khi đi hết con đường này, tôi đã được tuyển vào vị trí Software Development Engineer ở Amazon! Bạn có lẽ không cần phải học nhiều như tôi đã học. Nhưng dù sao, mọi
thứ bạn cần ở đây. Những chủ đề này sẽ chuẩn bị cho bạn nền tảng kiến thức vững vàng cho bất kỳ công ty phần mềm nào, bao gồm cả những gã khổng lồ như: Amazon, Facebook, Google hay Microsoft. Chúc may mắn! Đây là kế hoạch học tập trong nhiều tháng của tôi, để từ một nhà phát triển web (tự học, không có bằng cấp về Khoa Học Máy Tính - KHMT) trở thành một kỹ sư phần mềm ở Google. Danh sách dài này được trích và mở rộng từ Ghi chú huấn luyện của Google, vậy nên đây là những gì bạn cần biết. Một vài mục tôi thêm vào ở cuối danh sách có thể xuất hiện trong cuộc phỏng vấn hoặc hữu ích cho việc giải quyết các bài toán về lập trình. Nhiều mục đến từ bài viết Lấy được việc ở Google (Get that job at Google)" của Steve Yegge. Tôi lược bớt những gì bạn cần từ lời khuyên của Yegge. Tôi cũng chỉnh sửa lại các yêu cầu dựa trên thông tin tôi có được từ bạn bè ở Google. Danh sách này được thiết kế cho Kỹ sư phần mềm hoặc những ai chuyển từ phát triển web hoặc phần mềm sang kỹ nghệ phần mềm (khi mà kiến thức về Khoa Học Máy Tính là bắt buộc). Nếu bạn có nhiều kinh nghiệm và muốn khẳng định nhiều năm trong đó bạn làm việc như một kỹ sư phần mềm, hãy sẵn sàng cho một buổi phỏng vấn khó hơn. Xem thêm ở đây. Nếu bạn có kinh nghiệm trong phát triển web hoặc ứng dụng, hãy chú ý rằng Google xem việc xây dựng phần mềm khác với web và ứng dụng thông thường. Họ yêu cầu kiến thức về Khoa Học Máy Tính. Thêm vào đó, nếu bạn muốn trở thành một kỹ sư hệ thống (System Engineer), hãy học thêm từ danh sách bổ sung (mạng máy tính, bảo mật,...) Mục lục
---------------- Những mục dưới đây là tuỳ chọn ----------------
Vì sao tôi cần tài liệu này?Tôi đang chuẩn bị tham gia phỏng vấn ở Google. Tôi từng làm web, xây dựng các dịch vụ và lập các công ty khởi nghiệp từ năm 1997. Tôi có bằng Kinh Tế, nhưng không có bằng Khoa Học Máy Tính. Tôi thấy sự nghiệp của mình khá thành công, nhưng như thế chưa đủ. Tôi muốn làm việc ở Google, được tham gia xử lý một hệ thống lớn; thực sự hiểu rõ về máy tính, sự hiệu quả của các thuật toán và cấu trúc dữ liệu, các ngôn ngữ lập trình cấp thấp, và chúng hoạt động cùng nhau như thế nào. Và nếu bạn không biết về cái nào trong số đó, Google sẽ không tuyển bạn. Khi tôi bắt đầu dự án này, tôi không
phân biệt được stack và heap, không biết về Big-O, không có khái niệm gì về cây ( Tất cả các cấu trúc dữ liệu tôi từng sử dụng đều được cài đặt sẵn trong ngôn ngữ lập trình và tôi không nhất thiết phải biết chúng làm việc như thế nào. Tôi chưa từng phải tự quản lý vùng nhớ, trừ khi một tiến trình đang chạy ném lỗi "hết bộ nhớ" ( Nhưng, sau khi trải qua dự án này, tôi rất tự tin rằng mình sẽ được tuyển. Đây là một dự án dài hơi, sẽ tốn của tôi hàng tháng. Nếu bạn đã quen với nhiều nội dung trong này, bạn sẽ mất ít thời gian hơn. Sử dụng tài liệu này như thế nào?
Bạn có thể bỏ qua mục này nếu đã có kiến thức về Git, Github và Github Flavored Markdown Nếu bạn chưa biết về git thì vui lòng tham khảo các bài hướng dẫn sau để nắm cách sử dụng:
Tiếp theo, bạn cần biết cách gắp (fork) một repo trên github:
Ok, bây giờ bạn có thể bắt đầu:
Đừng nghĩ rằng bạn không đủ thông minh
Về nguồn videoMột vài video chỉ xem được khi bạn tham gia vào các lớp học online trên Coursera, EdX, hay Lynda.com. Các lớp đó được gọi là MOOC. Đôi khi các lớp chưa mở, và bạn phải đợi một vài tháng đến khi chúng được mở lại, do đó bạn không thể truy cập vào video được. Lynda.com thì không miễn phí.
Quy trình phỏng vấn & các bước chuẩn bị tổng quát
Chọn ngôn ngữ lập trình cho cuộc phỏng vấnBạn có thể chọn ngôn ngữ mà bạn quen thuộc để thực hiện phần viết mã trong lúc phỏng vấn, nhưng với Google, những ngôn ngữ sau đây là thích hợp nhất:
Bạn cũng có thể sử dụng các ngôn ngữ sau đây, nhưng hãy tìm hiểu thêm trước. Chúng có thể có bất lợi:
Dù sao, bạn cũng cần phải rất quen thuộc với ngôn ngữ lập trình của mình. Xem thêm về các sự lựa chọn:
Xem tài liệu về các ngôn ngữ ở đây Bạn sẽ thấy vài tài liệu về C, C++ và Python bên dưới, vì tôi đang học chúng. Ngoài ra còn có một vài đầu sách nữa, xem ở cuối. Danh mục sáchĐây là danh sách rút gọn từ những gì mà tôi đọc, để tiết kiệm thời gian cho bạn. (xem bên dưới). Chuẩn bị phỏng vấn
Nếu bạn có nhiều thời gian hơn nữa:
Kiến trúc máy tínhNếu không có nhiều thời gian:
Nếu bạn có nhiều thời gian (tôi đã muốn đọc quyển này):
Từng ngôn ngữ riêng biệtBạn phải chọn một ngôn ngữ cho cuộc phỏng vấn (xem ở trên). Đây là các khuyến nghị của tôi. Tôi không có tài liệu cho tất cả các ngôn ngữ lập trình, vậy nên, đóng góp từ bạn luôn được chào đón. Nếu bạn muốn đọc xuyên suốt một trong những quyển sách này, bạn nên có kiến thức về cấu trúc dữ liệu và giải thuật. Bạn cũng nên luyện tập giải toán lập trình. Bạn có thể bỏ qua bài giảng video trong project này, trừ khi bạn muốn tự đánh giá lại kiến thức của mình. Đây là tài liệu ngôn ngữ lập trình bổ sung. C++Tôi chưa đọc 2 cuốn này, nhưng chúng được đánh giá cao, và được viết bởi Sedgewick. Giáo sư Sedgewick rất xuất sắc.
Nếu bạn có đề xuất nào tốt hơn cho C++, hãy cho tôi biết. Tôi đang tìm một tài liệu súc tích. Java
hoặc:
Python
Sách tùy chọnMột vài người đề xuất mấy quyển này, nhưng tôi nghĩ chúng là quá nặng, trừ khi bạn có nhiều kinh nghiệm với kỹ nghệ phần mềm và đang mong đợi một cuộc phỏng vấn khó hơn nhiều:
Trước khi bắt đầuDanh sách này ngày càng dài theo năm tháng và tôi phải thừa nhận là nó ngoài tầm kiểm soát. Sau đây là 1 vài lỗi tôi đã mắc phải, hy vọng rằng có thể mang lại cho bạn một chút kinh nghiệm. 1. Bạn sẽ không nhớ được tất cảTôi đã xem hàng giờ video và viết rất nhiều ghi chú, và chỉ sau vài tháng không còn nhớ chút gì. Tôi đã bỏ ra 3 ngày đọc lại các ghi chú và làm thẻ ghi nhớ để có thể đọc dễ dàng hơn. Hãy đọc để tránh phạm phải sai lầm tương tự: Retaining Computer Science Knowledge 2. Sử dụng thẻ ghi nhớĐể giải quyết vấn đề, tôi đã viết 1 trang web nhỏ về thẻ ghi nhớ để thêm các thẻ mới với 2 dạng chính: kiến thức chung và code. Mỗi loại có định dạng riêng. Tôi đã làm một trang mobile-first (lấy mobile là trọng tâm phát triển trang web) để có thể xem trên điện thoại và máy tính bảng, ở bất cứ đâu. Tự tạo cho mình hoàn toàn miễn phí:
Ghi chú dành cho các thẻ ghi nhớ: Lần đầu tiên bạn nhận ra bạn biết câu trả lời, đừng đánh dấu là đã biết.Bạn phải xem thẻ tương tự và đưa ra câu trả lời chính xác vài lần trước khi bạn thực sự khẳng định đã nắm được vấn đề. Lặp đi lặp lại việc này sẽ giúp kiến thức được khắc sâu vào não bạn. Có thể thay thế thẻ ghi nhớ với Anki, đây là ứng dụng mà bạn sẽ thấy tôi khuyến khích sử dụng rất nhiều lần. Nó sử dụng một hệ thống lặp để giúp bạn có thể ghi nhớ được kiến thức. Đây là ứng dụng cực kì thân thiện với người dùng, có mặt trên tất cả các hệ điều hành, và có hệ thống lưu trữ đồng bộ đám mây. Tốn khoản 25$ cho iOS nhưng miễn phí trên các hệ điều hành khác. Cơ sở dữ liệu thẻ ghi nhớ của tôi tuân theo chuẩn định dạng của Anki: https://ankiweb.net/shared/info/25173560 (cảm ơn @xiewenya) 3. Xem đi xem lại và xem lại nữaTôi giữ một danh sách xem nhanh các mã của ASCII, OSI stack, định nghĩa về Big-O, và nhiều hơn nữa. Tôi đọc bất cứ khi nào rảnh rỗi. Khi gặp vấn đề trong lúc code, nghỉ ngơi chừng nửa giờ và đọc lại các thẻ ghi nhớ. 4. Tập trungCó rất nhiều thứ lấy đi sự tập trung của ta, việc này tốn rất nhiều thời gian. Tập trung và toàn tâm toàn ý rất khó. Những phần không được đề cậpDanh sách lớn này bắt đầu như một bản To-do lược trích từ Huấn luyện phỏng vấn cho Google. Có vài công nghệ đang thịnh hành nhưng không được đề cập đến, ví dụ:
Kế hoạch hàng ngàyMột vài môn học chỉ mất một ngày, vài môn khác có thể mất nhiều ngày. Có vài môn chỉ có thể học thôi chứ không cài đặt được gì. Mỗi ngày tôi sẽ chọn một trong các thứ liệt kê bên dưới, xem video bải giảng về nó, và viết mã trên:
Bạn không cần luyện tất cả các ngôn ngữ đó. Chỉ cần một ngôn ngữ cho cuộc phỏng vấn là đủ. Tại sao lại viết mã với tất cả các ngôn ngữ đó?
Tôi có lẽ không đủ thời gian để thử hết tất cả các bước trên với từng chủ đề, nhưng tôi sẽ cố. Bạn có thể xem code của tôi ở các trang sau:
Bạn không cần phải ghi nhớ cặn kẽ từ giải thuật. Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy tính. Chạy thử trên giấy với vài bộ dữ liệu mẫu, sau đó chạy thử thuật toán của bạn trên một máy tính. Kiến thức tiên quyết
Độ phức tạp của thuật toán / Big-O / Phân tích tiệm cận
Cấu trúc dữ liệu
Kiến thức ngoài
Cây
Sắp xếp
Nếu bạn muốn biết thêm chi tiết trong chủ đề này, xem qua phần "Sắp xếp" trong Đọc thêm về một số đề tài Đồ thịĐồ thị có thể được sử dụng để miêu tả nhiều bài toán trong khoa học máy tính, vậy nên phần này cũng khá dài, tương đương với Cây và Sắp xếp.
Bạn sẽ biết thêm nhiều ứng dụng của đồ thị trong sách của Skiena (xem danh mục sách bên dưới) và các sách về phỏng vấn. Kiến thức bổ sung
Thiết kế hệ thống, Khả năng mở rộng, Xử lý dữ liệu
Tổng kết
Thực hành các câu hỏi về lập trìnhBây giờ bạn đã biết tất cả các chủ đề về khoa học máy tính, đây là lúc để thực hành các câu hỏi về lập trình. Thực hành trả lời các câu hỏi về lập trình không phải là ghi nhớ cách trả lời các vấn đề trong lập trình Tại sao bạn cần thực hành trả lời các vấn đề lập trình:
Dưới đây là một bài viết tuyệt vời về phương thức luận, cách kết nối giải quyết vấn đề trong một bài phỏng vấn. Bạn có thể gặp các bài viết tương tự trong các sách hướng dẫn phỏng vấn nhưng tôi cho là bài này thật sự cực kì xuất sắc: Thiết kế thuật toán (Algorithm design canvas) Các bước tôi xử lý cho các câu hỏi về lập trình trong phỏng vấn (My Process for Coding Interview (Book) Exercises) Không có bảng trắng ở nhà? Cũng hợp lý chứ. Tôi có chút khác biệt và tôi có một cái bảng trắng rất to. Thay vì bảng trắng, bạn có thể chọn một tập sổ ký họa từ các cửa hàng nghệ thuật. Bạn có thể ngồi ở ghế salon và thực hành. Tôi gọi nó là "bảng trắng mềm mại". Tôi có bỏ vào cây bút để dễ ước lượng. Nếu bạn dùng bút mực, bạn sẽ mong chọn loại nào có thể tẩy được ấy, vì sớm muộn sẽ rối cả lên. Phụ lục:
Đọc và làm các bài tập về lập trình (theo thứ tự sau):
Đọc qua Danh sách sách phía trên Giải bài tập lập trìnhBạn nên để cho bộ não vận dụng các kiến thức đã học. Hãy thử sức với các bài toán lập trình hàng ngày, càng nhiều càng tốt.
Các trang giải toán lập trình:
Xem thêm:
Khi bạn tiến gần đến kỳ phỏng vấn
Lý lịch (Resume) của bạn
Hãy nghĩ đến những thứ bạn sẽ được hỏiNghĩ sẵn 20 câu hỏi kỹ thuật bạn có thể gặp phải, cùng với danh sách bên dưới. Chuẩn bị 2 đến 3 câu trả lời cho mỗi câu hỏi. Hãy chuẩn bị cả câu chuyện (từ chính kinh nghiệm của bạn), chứ không chỉ một câu trả lời suông.
Chuẩn bị câu hỏi dành cho phỏng vấn viên
Khi bạn được nhận việcChúc mừng!
Hãy tiếp tục rèn luyện. Bạn không bao giờ thực sự học xong!
Sách bổ sung
Học thêm
-- Đọc thêm về một số đề tàiTôi thêm những phần này để củng cố các kiến thức đã được trình bày ở trên, nhưng không muốn đưa chúng vào danh sách trên, vì đã quá nhiều rồi. Cũng có hơi vượt mức cần thiết. Nhưng dù sao, bạn muốn trúng tuyển mà phải không?
Các chuỗi VideoHãy ngồi xuống và thưởng thức. "Luyện kỹ năng với Netflix" :P
Các khóa học khoa học máy tính
Git đóng vai trò chính trong các tổ chức khác nhau vì đây là một trong những hệ thống quản lý mã nguồn tốt nhất. Có hơn 40 triệu người dùng Git trên thế giới hiện nay. Với các tính năng như quản lý nhiệm vụ và theo dõi lỗi, Git là một công nghệ hiệu quả được sử dụng bởi hầu hết các chuyên gia trong ngành ngày nay. Sau khi thực hiện một số cuộc thảo luận và nghiên cứu, chúng tôi đã biên soạn danh sách các câu hỏi phỏng vấn Git sau đây:Git is an efficient technology used by most industry experts today. After conducting several discussions and research, we have compiled the following list of Git interview questions: Q1. Git và GitHub là gì? Q2. Sự khác biệt giữa Git và GitHub là gì? Q3. Kho lưu trữ Git là gì? Đặt tên cho một số dịch vụ lưu trữ GIT phổ biến. Q4. Hệ thống điều khiển phiên bản là gì? Đề cập đến các loại của nó. Q5. Sự khác biệt chính giữa Git và SVN là gì? Q6. Những lợi thế của việc sử dụng Git là gì? Q7. Ngôn ngữ nào được sử dụng trong git? Q8. Những lợi thế của Git so với SVN là gì? Q9. Git bash là gì? Q10. Ý nghĩa của khu vực tổ chức chỉ số của người Viking là gì trong Git là gì? Blog Câu hỏi phỏng vấn Git được phân loại thành ba phần sau: 1. Cơ bản 2. Trung cấp 3. Nâng cao Xem video hướng dẫn Git này
Câu hỏi phỏng vấn cơ bản1. Git và GitHub là gì?Git là một hệ thống kiểm soát phiên bản phân phối miễn phí và nguồn mở được phát triển để xử lý các dự án ở mọi quy mô một cách nhanh chóng và hiệu quả. GitHub sử dụng Git để cung cấp lưu trữ internet để kiểm soát phiên bản và phát triển phần mềm. Nó cung cấp chức năng của kiểm soát phiên bản phân tán và quản lý mã nguồn, được tìm thấy trong GIT, ngoài các tính năng độc đáo khác. Kiểm tra blog của chúng tôi để tìm hiểu thêm về các lệnh trong GIT! 2. Sự khác biệt giữa Git và GitHub là gì?Git là một hệ thống kiểm soát phiên bản được sử dụng trong việc quản lý lịch sử mã nguồn. GitHub, mặt khác, là một dịch vụ lưu trữ dựa trên đám mây được sử dụng trong việc quản lý các kho của Git. GitHub được thiết kế để giúp quản lý tốt hơn các dự án nguồn mở. 3. Kho lưu trữ Git là gì? Đặt tên cho một số dịch vụ lưu trữ GIT phổ biến.Các kho lưu trữ chứa một loạt các tệp là các phiên bản khác nhau của một dự án. Các tệp này được nhập từ kho lưu trữ vào máy chủ cục bộ của người dùng để sửa đổi và cập nhật thêm trong Nội dung. & NBSP; Một vài dịch vụ lưu trữ Git phổ biến là:
Tờ Git Cheat của Intellipaat có ích trong khi nghiên cứu Git. 4. Hệ thống điều khiển phiên bản là gì? Đề cập đến các loại của nó.Hệ thống điều khiển phiên bản (VCS) là một công cụ phần mềm được sử dụng để tạo các phiên bản dự án khác nhau và lưu trữ chúng trong kho lưu trữ. Tất cả các sửa đổi cho mã được ghi lại và theo dõi bởi các VC. Các loại hệ thống kiểm soát phiên bản: & nbsp;
5. Sự khác biệt chính giữa Git và SVN là gì?
Ở đây chúng tôi liệt kê một số khác biệt quan trọng nhất giữa Git và SVN:
6. Những lợi thế của việc sử dụng Git là gì?Dưới đây là một số lợi thế quan trọng nhất của Git:
7. Ngôn ngữ nào được sử dụng trong GIT?C là ngôn ngữ lập trình được sử dụng để tạo Git, đảm bảo rằng các chi phí được giảm. 8. Ưu điểm của Git so với SVN là gì?Vì Git là một hệ thống điều khiển phiên bản nguồn mở, nó cho phép chúng tôi chạy nhiều phiên bản của dự án để nó hiển thị các thay đổi được thực hiện theo mã theo thời gian và nếu cần, chúng tôi có thể theo dõi những thay đổi mà chúng tôi đã thực hiện. Điều này có nghĩa là một số lượng lớn các nhà phát triển có thể thực hiện các thay đổi của riêng họ và tải lên những thay đổi đó để các thay đổi có thể được quy cho các nhà phát triển cụ thể. 9. Git Bash là gì?Git Bash là một ứng dụng cài đặt Bash, Git và một vài tiện ích bash thường được sử dụng trên hệ điều hành Windows. Trong git bash, sự tương tác là có thể với các phần tử git và kho lưu trữ thông qua các lệnh khác nhau. 10. Ý nghĩa của khu vực chỉ số của người Hồi giáo hoặc khu vực tổ chức trên Git là gì?Khi chúng tôi thực hiện các cam kết, chúng tôi có thể thực hiện các thay đổi đối với nó, định dạng nó và xem xét nó trong khu vực trung gian được gọi là ‘khu vực dàn dựng hoặc‘ index. 11. Tagging trong git là gì?Tagging cho phép các nhà phát triển đánh dấu tất cả các điểm kiểm tra quan trọng thông qua tiến trình của các dự án của họ. Thay vì ID cam kết, tên thẻ có thể được sử dụng trong khi các cam kết được kiểm tra và đẩy đến một repo từ xa. 12. Những gì đang đi trong git?Một bản sao lưu trữ được gọi là nĩa. Vì vậy, Forking cho phép một người thử nghiệm những thay đổi mà không phải lo lắng về dự án ban đầu. Quá trình này là lý tưởng để đề xuất các thay đổi cho các dự án khác của người khác. 13. Việc sử dụng bản sao Git là gì?Lệnh nhân bản Git cho phép chúng tôi sao chép kho lưu trữ Git hiện có. Nếu chúng ta muốn có được một bản sao của kho lưu trữ trung tâm thì cách tốt nhất để làm điều đó là sử dụng ‘nhân bản. 14. Chức năng của ‘Git Config là gì?Cấu hình Git là một cách tuyệt vời để định cấu hình các tùy chọn của chúng tôi cho cài đặt Git. Sử dụng lệnh này, chúng ta có thể xác định hành vi, tùy chọn và thông tin người dùng của kho lưu trữ. Câu hỏi phỏng vấn trung gian15. Quá trình tạo kho lưu trữ trong git là gì?Nếu chúng ta muốn tạo một kho lưu trữ trong GIT, thì chúng ta cần chạy lệnh Git Git init. Với lệnh này. Khoa lưu trữ, chúng ta có thể tạo một thư mục trong thư mục dự án. 16. Cherry-pick trong git là gì?Git Cherry-Pick là một mệnh lệnh cho phép chọn các cam kết Git tùy ý bằng cách tham khảo và thêm chúng vào đầu. Cherry chọn là quá trình chọn một cam kết từ một chi nhánh và áp dụng nó cho nó. Nó giúp hoàn tác thay đổi. 17. Nguồn gốc trong git là gì?Nguồn gốc đề cập đến kho lưu trữ từ xa rằng một dự án ban đầu được nhân bản và được sử dụng thay vì URL kho lưu trữ ban đầu. Điều này cho phép tham khảo dễ dàng hơn. 18. Lệnh đẩy Git là gì?Lệnh đẩy Git được áp dụng để tải nội dung lên kho lưu trữ từ xa từ kho lưu trữ cục bộ. Đẩy có thể ghi đè lên các thay đổi, vì vậy nó nên được sử dụng một cách thận trọng. 19. Lệnh kéo Git là gì?Lệnh Git Pull là để tìm nạp và tải xuống nội dung từ kho lưu trữ từ xa và tích hợp nó với kho lưu trữ cục bộ. 20. Sự khác biệt giữa Git Fetch và Git Pull là gì?Git Fetch lấy dữ liệu mới từ kho lưu trữ từ xa nhưng không tích hợp nó vào các tệp làm việc của chúng tôi. Nó giúp kiểm tra xem có bất kỳ thay đổi nào xảy ra trong kho lưu trữ từ xa. Nó không thao túng hoặc phá hủy bất cứ điều gì trong quá trình. Mặt khác, Git Pull cập nhật đầu với những thay đổi mới nhất từ máy chủ từ xa và tích hợp trực tiếp nó vào các tệp sao chép hoạt động. Sử dụng git pull có thể kết thúc trong xung đột hợp nhất khi nó cố gắng hợp nhất các thay đổi từ xa với các địa phương. 21. Giải thích kiểm tra Git trong Git.Kiểm tra Git cho phép chuyển đổi đầu. Nó cũng có thể được sử dụng để khôi phục các phiên bản lịch sử của các tệp. Lệnh này hoạt động theo các tệp, cam kết và chi nhánh. The command operates upon files, commits, and branches. 22. Git Rebase làm gì?Rebasing là việc áp dụng lại các cam kết trên một chuyến đi cơ sở khác. Một chuỗi các cam kết được áp dụng từ các nhánh riêng biệt vào cam kết cuối cùng. Đó là một quá trình tuyến tính hợp nhất và là một giải pháp thay thế cho lệnh GIT Merge. Rebasing làm cho có vẻ như người ta đã tạo ra một chi nhánh từ một cam kết khác. 23. Sự khác biệt giữa Git Rebase và Git hợp nhất là gì?Trong Git Rebase, một chi nhánh tính năng được chuyển vào một bậc thầy. Git Merge duy trì lịch sử bằng cách thêm một cam kết mới. 24. Điều gì được hoàn nguyên trong GIT?Lệnh trở lại Git là một hoạt động hoàn tác chuyển đổi chuyển tiếp. Đó là một cách an toàn để hoàn tác các thay đổi vì nó sẽ tạo ra một cam kết mới làm ngược lại các thay đổi thay vì xóa hoặc cam kết mồ côi trong lịch sử cam kết. 25. Sự khác biệt giữa đặt lại và hoàn nguyên là gì?Mặc dù Git Reset thay đổi trạng thái của chi nhánh thành trạng thái trước đó bằng cách loại bỏ tất cả các trạng thái sau khi cam kết mong muốn, Git hoàn nguyên thực hiện nó thông qua việc tạo ra các cam kết hoàn nguyên mới và giữ nguyên bản gốc. 26. Sự khác biệt giữa ‘Git Remote, và‘ Git Clone là gì?Git Remote thêm một tham chiếu đến một kho lưu trữ từ xa để theo dõi thêm. Git Clone, giống như tên của nó, nhân bản một kho lưu trữ từ xa hiện có và xây dựng một kho mới. 27. Git Stash là gì?Git Stash sẽ lấy thư mục làm việc ở trạng thái hiện tại và lập chỉ mục nó để đặt vào ngăn xếp ở giai đoạn sau để những gì chúng ta nhận được là một thư mục làm việc sạch. Điều này có nghĩa là nếu chúng ta đang ở giữa một số nhiệm vụ và cần phải có một thư mục làm việc sạch và đồng thời chúng ta muốn giữ tất cả các chỉnh sửa hiện tại của mình, thì chúng ta có thể sử dụng Git Stash. 28. Làm thế nào là nĩa, nhánh và bản sao khác nhau?Forking tạo ra một bản sao của kho lưu trữ ban đầu và nó vẫn còn trong tài khoản GitHub. Trong khi đó, trong nhân bản, kho lưu trữ được sao chép vào máy cục bộ bằng Git. Forking được sử dụng để đề xuất các thay đổi cho chủ sở hữu kho lưu trữ. Trong nhân bản, các thay đổi được đẩy trực tiếp vào kho lưu trữ ban đầu, miễn là người dùng có quyền truy cập ghi. Một nhánh xảy ra trong một kho lưu trữ và là một cách để tiếp tục phát triển và sửa đổi phần mềm mà không ảnh hưởng đến dự án chính. 29. Sự khác biệt giữa git reflog và log là gì?Nhật ký Git là một hồ sơ công khai về lịch sử cam kết cho một chi nhánh. Refleg, mặt khác, là một trong những cam kết địa phương của kho lưu trữ. Không giống như Refleg, nhật ký Git là một phần của kho lưu trữ Git và được nhân rộng sau khi đẩy, tìm nạp hoặc kéo. Một nhà phát triển không thể truy cập vào kho lưu trữ cục bộ, bạn không có quyền truy cập vào máy tính. 30. Git Stash Drop là gì?Khi chúng tôi kết thúc với việc làm việc trên các mục được cất gọn hoặc muốn xóa danh sách, chúng tôi có thể sử dụng Git Stash Drop. Điều này sẽ đảm bảo rằng mục được thêm vào lần cuối theo mặc định hoặc bất kỳ mục cụ thể nào có thể được xóa khỏi đối số. 31. Làm thế nào để xác định nếu một chi nhánh nhất định đã được hợp nhất vào Master?Git Branch Master Master - Hiển thị tất cả các chi nhánh được hợp nhất vào Master Chi nhánh Git - Được hợp nhất - Hiển thị tất cả các nhánh được hợp nhất vào đầu Chi nhánh git-không được cân nhắc, tất cả các chi nhánh không được hợp nhất 32. Tại sao chúng ta cần phân nhánh trong git?Với sự giúp đỡ của phân nhánh, chúng ta có thể có chi nhánh riêng của mình và chúng ta cũng có thể nhảy giữa các nhánh khác nhau. Chúng tôi có thể đi đến công việc trước đây của chúng tôi, đồng thời giữ nguyên công việc gần đây của chúng tôi. Câu hỏi phỏng vấn nâng cao33. Các thành phần của đối tượng cam kết chứa đựng là gì?
34. Đầu trong git là gì, và có bao nhiêu đầu có thể được tạo ra trong một kho lưu trữ?Tham chiếu đến một đối tượng cam kết được gọi là đầu. Mỗi kho lưu trữ đều có một ’chủ, là đầu mặc định. Có thể có nhiều đầu trong một kho lưu trữ. 35. Cách thường xuyên để phân nhánh trong git là gì?Cách tốt nhất để tạo một nhánh trong GIT là có một nhánh chính và sau đó tạo ra một nhánh khác để thực hiện các thay đổi mà chúng tôi muốn thực hiện. Điều này cực kỳ hữu ích khi có một số lượng lớn các nhà phát triển làm việc trong một dự án. 36. Nêu một cách để tạo ra một nhánh mới trong GIT.Nếu chúng ta muốn tạo một tính năng mới vào nhánh chính, thì chúng ta có thể sử dụng lệnh ‘git merge, hoặc‘ git pull. 37. Làm thế nào để bạn xác định một ‘xung đột trong Git?Nếu chúng ta muốn hợp nhất một cam kết, có một sự thay đổi ở một nơi và cùng một thay đổi đã tồn tại thì trong khi hợp nhất git sẽ không thể dự đoán đó là thay đổi cần được ưu tiên. 38. Làm thế nào để giải quyết một cuộc xung đột trong GIT?Nếu chúng tôi muốn giải quyết xung đột trong GIT, thì chúng tôi cần chỉnh sửa các tệp để sửa các thay đổi mâu thuẫn và sau đó chúng tôi có thể chạy thêm Git thêm để thêm các tệp đã được giải quyết và sau đó chúng tôi có thể chạy 'Git cam kết' để thực hiện Sửa chữa hợp nhất. Làm thế nào để bạn giải thích git trong cuộc phỏng vấn?Câu hỏi phỏng vấn Git trung gian.. Tại sao nó được coi là dễ dàng để làm việc trên Git? .... Làm thế nào bạn sẽ tạo một kho lưu trữ Git? .... Hãy cho tôi biết điều gì đó về Git Stash? .... Lệnh được sử dụng để xóa một nhánh là gì? .... Điều gì khác biệt giữa các lệnh Git Remote và Git Clone? .... Lệnh áp dụng Git Stash làm gì ?. Làm thế nào để bạn giải quyết xung đột trong cuộc phỏng vấn Git?Dưới đây là các bước sẽ giúp bạn giải quyết xung đột trong GIT:.. Xác định các tệp chịu trách nhiệm cho các xung đột .. Thực hiện các thay đổi mong muốn cho các tệp .. Thêm các tệp bằng lệnh Git ADD .. Bước cuối cùng là cam kết các thay đổi trong tệp với sự trợ giúp của lệnh Git cam kết .. Mục tiêu chính của Git là gì?Mục tiêu chính của GIT là tốc độ, tính toàn vẹn dữ liệu và hỗ trợ cho các quy trình công việc phân tán, phi tuyến tính.speed, data integrity, and support for distributed, non-linear workflows.
Git MCQ Hook là gì?41) 'Móc' bao gồm những gì trong git?Thư mục này bao gồm các tập lệnh shell được kích hoạt sau khi chạy các lệnh GIT tương ứng.Ví dụ: Git sẽ cố gắng thực thi tập lệnh sau cam kết sau khi bạn thực hiện một cam kết.Shell scripts which are activated after running the corresponding Git commands. For example, git will try to execute the post-commit script after you run a commit. |