一天吃透Git面試八股文

来源:https://www.cnblogs.com/tyson03/archive/2023/03/12/17207835.html
-Advertisement-
Play Games

什麼是Git? Git是一個版本控制系統,用於跟蹤電腦文件的變化。Git是一個跟蹤電腦文件變化的版本控制系統,用於幫助協調一個項目中幾個人的工作,同時跟蹤一段時間的進展。換句話說,我們可以說它是一個促進軟體開發中源代碼管理的工具。 Git和SVN的區別 Git是分散式版本控制系統,SVN是集中式 ...


什麼是Git?

Git是一個版本控制系統,用於跟蹤電腦文件的變化。Git是一個跟蹤電腦文件變化的版本控制系統,用於幫助協調一個項目中幾個人的工作,同時跟蹤一段時間的進展。換句話說,我們可以說它是一個促進軟體開發中源代碼管理的工具。

Git和SVN的區別

Git是分散式版本控制系統,SVN是集中式版本控制系統

什麼是 Git 倉庫?

Git 倉庫指的是一個用於存放源代碼的地方。Git 倉庫是指存放所有 Git 文件的地方。這些文件既可以存儲在本地倉庫,也可以存儲在遠程倉庫。

有哪些Git命令及其功能?

  • Git config - 配置用戶名和電子郵件地址
  • Git add - 添加一個或多個文件到暫存區域
  • Git diff - 查看對文件的修改情況
  • Git init - 初始化一個空的 Git 倉庫
  • Git commit - 將更改提交到頭部,但不提交到遠程倉庫

使用Git有什麼好處?

  • 更快的發佈周期
  • 易於團隊協作
  • 廣泛的接受度
  • 保持源代碼的完整性
  • 拉動請求

如何解決Git中的衝突?

  • 識別造成衝突的文件。
  • 對這些文件進行所需的修改
  • 使用 git add 命令添加文件。
  • 最後一步是在git commit命令的幫助下提交文件的修改。

如何發現一個分支是否已經被合併了?

有兩個命令可以確定:

  • git branch --merged -- 返回已被合併到當前分支的分支列表。
  • git branch --no-merged --返回尚未合併的分支的列表。

git remote和git clone什麼區別?

'git remote add'在你的git配置中創建了一個條目,指定了一個特定URL的名稱,而'git clone'通過複製位於該URL的現有倉庫來創建一個新的git倉庫。

reset和Revert的區別是什麼?

Git reset是一個強大的命令,它可以讓你的工作更有效率。

  • Git reset 是一個強大的命令,用於撤銷對 Git 倉庫狀態的局部修改。Git 重置的操作對象是 "Git 的三棵樹",即:提交歷史(HEAD)、暫存索引和工作目錄。
  • Git的Revert命令創建了一個新的提交,撤銷了前一個提交的修改。這個命令為項目添加了一個新的歷史。它並不修改現有的歷史。

Git 和 GitHub 的區別是什麼?

Git 是一個版本控制系統。Git 是一個版本控制系統,用於管理源代碼歷史。而GitHub則是一個基於雲的托管服務,用於管理Git倉庫。GitHub的目的是幫助更好地管理開源項目。

git reset的功能是什麼?

Git reset "的功能是將你的索引以及工作目錄重置為你最後一次提交的狀態。

git fetch&git pull詳解

git fetch的意思是將遠程主機的最新內容拉到本地,用戶再檢查無誤後再決定是否合併到工作本地分支中。

git pull 是將遠程主機中的最新內容拉取下來後直接合併,即:git pull = git fetch+git merge,這樣可能會產生衝突,需要手動解決。

Git stash存儲的目的是什麼?

Git stash 獲取工作文件和索引的當前狀態並放入堆棧以供下一步使用,並返回一個乾凈的工作文件。因此,如果在對象中間並需要跳轉到其他任務,同時不想丟失當前的編輯,可以使用 Git stash。

說說GIT合併的方法以及區別?

Git代碼合併有兩種:git merge 和 git rebase

git merge:這種合併方式是將兩個分支的歷史合併到一起,現在的分支不會被更改,它會比對雙方不同的文件緩存下來,生成一個commit,去push。

git rebase:這種合併方法通常被稱為“衍合”。他是提交修改歷史,比對雙方的commit,然後找出不同的去緩存,然後去push,修改commit歷史。

Git提交代碼的步驟

git clone (這個是你新建本地git倉庫,如已有可忽略此步)
git pull    取回遠程主機某個分支的更新,再與本地的指定分支合併。
git status  查看當前狀態
git add + 文件
git add -u + 路徑:將修改過的被跟蹤代碼提交緩存
git add -A + 路徑: 將修改過的未被跟蹤的代碼提交至緩存
git add -u com/breakyizhan/src 將 com/breakyizhan/src 目錄下被跟蹤的已修改過的代碼提交到緩存中
git commit -m "修複XXbug"   推送修改到本地git庫中
git push    把當前提交到git本地倉庫的代碼推送到遠程主機的某個遠程分之上

什麼是“git cherry-pick”?

git cherry-pick 通常用於把特定提交從存儲倉庫的一個分支引入到其他分支中。常見的用途是從維護的分支到開發分支進行向前或回滾提交。這與其他操作(例如merge、rebase)形成鮮明對比,後者通常是把許多提交應用到其他分支中。

說一下Gitflow 工作流程嗎?

Gitflow 工作流程使用兩個並行的、長期運行的分支來記錄項目的歷史記錄,分別是 master 和 develop 分支。Master,隨時準備發佈線上版本的分支,其所有內容都是經過全面測試的。Hotfix,維護或修複分支是用於給快速給生產版本修複打補丁的。修複分支很像發佈分支和功能分支,除非它們是基於 master 而不是 develop 分支。Develop,是合併所有功能分支,並執行所有測試的分支。只有當所有內容都經過徹底檢查和修複後,才能合併到 master 分支。Feature,每個功能都應留在自己的分支中開發,可以推送到 develop 分支作為功能分支的父分支。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • @ 前言 🍊緣由 介面文檔對接爽,整理起來真費腦 對於整理API文檔,本狗秉承偷懶為上的原則,想找一種在IDEA中直接生成文檔的方法。Apifox Helper絕絕子,只需要在IDEA中下載插件,無腦配置後,文檔自動生成到Apifox,美完美解決。並且顏值及方便程度絕比Swagger和postma ...
  • 說明 使用 QCustomPlot 繪圖庫輔助開發時整理的學習筆記。 1. 庫簡介 QCustomPlot 是一個用於科學繪圖的 QT 第三方庫,可以用於常見的二維圖像繪製,比如函數曲線、參數方程曲線、熱力圖、柱狀圖、箱線圖、極坐標繪圖等。該庫由德國人 Emanuel Eichhammer 開發,經 ...
  • 今天看到個有趣的網站,給大家分享一下。 該網站的功能很神奇,可以實現編程語言的轉化。感覺在一些場景之下還是有點作用的,比如你原來跟我一樣是做Java的,因為工作需要突然轉Go。這個時候用你Java的經驗 + 這個工具,或許可以起到一定的幫助作用。 工具的使用也很簡單,只需要在左側黏貼你想轉換的原始代 ...
  • 一、初識爬蟲,requests使用 requests介紹: Request支持HTTP連接保持和連接池,支持使用cookie保持會話,支持文件上傳,支持自動響應內容的編碼,支持國際化的URL和POST數據自動編碼。requests會自動實現持久連接keep-alive # 導入模塊 import r ...
  • 資料庫的重要性不言而喻,不管是什麼系統,什麼應用軟體,也不管它們是 Windows 上的應用程式,還是 Web 應用程式,存儲(持久化)和查詢(檢索)數據都是核心的功能。 大家學習資料庫時,比如 MySQL 這個資料庫管理系統,都是在 CLI(Command Line Interface)上操作數據... ...
  • Tomcat 是 Apache 軟體基金會(Apache Software Foundation)的一個開源項目,實現了 Servlet 及 JSP 規範,可以用來部署 WEB 應用及 WebService;本文主要介紹其基本概念。 1、Tomcat 安裝 安裝 Tomcat 之前需要先安裝 Jav ...
  • 零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 基礎 零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 特效 零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> O ...
  • java 線程池預設提供了幾種拒絕策略: 這幾個策略都實現了RejectedExecutionHandler,拿DiscardOldestPolicy來說,查看源碼: 核心代碼只有2行: e.getQueue().poll() 從列表裡彈出1個(最早的)任務,以便讓隊列空出1個位置 e.execut ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...