一天吃透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 MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...