分布式版本控制工具 git

git 是什么

  • 分布式版本控制工具
  • github 是代碼托管平臺。

git 有什么用

  • 保存文件的所有修改記錄。
  • 使用版本號(sha1 哈希值) 進行區分。
  • 隨時可瀏覽歷史版本記錄。
  • 可還原到歷史指定版本。
  • 對比不同版本的文件差異。

為什么要使用 git

  • 多人協作開發一個大型項目。
  • 每個人都在代碼庫下載代碼,然后進行修改,把大家不同版本的代碼合在一起上傳到平臺。
  • 公司都會有自己的代碼托管平臺。

git 基本概念

  • 倉庫:
    • 遠程倉庫:git init --bare 創建一個裸倉庫。
    • 本地倉庫:git clone ... 克隆遠程倉庫到本地。
  • 協議:
    • http / https
    • ssh
      • ssh 協議是一個驗證授權的網絡協議。
      • 使用 ssh 公鑰登錄 git 服務器。
        • 生成公鑰和私鑰ssh-keygen -t rsa
        • 安裝 openssh server(可省略)。
        • 復制公鑰內容到遠端服務器 .ssh/authorized_keys
        • git clone ssh://root@123.249.112.139:/root/holo_render/remote_storage
  • 配置用戶名和郵箱:
    • 局部配置:
      git config user.name zcoder
      git config user.email zcoder@163.com
      
    • 全局配置:
      git config --global user.name zcoder
      git config --global user.email zcoder@163.com
      
  • 版本號:40sha1 哈希值。
  • head:當前檢出記錄的符號引用。

請添加圖片描述


git 基本操作

  • 暫存:git add
  • 提交:git commit
  • 推送:git push
  • 拉取:git fetch將遠程倉庫所包含分支的最新 commit-id 記錄到本地文件
  • 拉取合并:git pullgit fetch + git merge
  • 查看狀態:git status
  • 查看歷史:git log

git 逆向操作

  • 暫存區 → 本地工作區:git restore -S
  • 本地倉庫 → 暫存區:git reset --soft
  • 本地倉庫 → 本地工作區:git reset --mixed
  • 本地倉庫 → nullgit reset --hard

git 本地倉庫整理操作

  • 整理上一次提交:git commit --amend → 相同功能多次提交復用上次提交信息。
  • 整理多次提交:git rebase -i hash1 hash2(左開右關)。
  • 只在私有倉庫,也就是在 develop 分支上使用,因為提交的 commit-id 會發生變化。

git 分支操作

  • 查看分支:git branch
  • 創建分支:
    • git branch develop → 創建
    • git switch develop → 切換
    • git checkout -b develop → 創建并切換。
  • 刪除分支:git branch -d develop
  • 合并分支:
    • 切換到本地 master 分支,拉取遠程倉庫 master 最新數據。
      git switch master
      git pull
      
    • 切換到 develop 分支,把本地 master 合并到 develop
      git switch develop
      git merge master 
      
    • 如果有沖突要解決沖突,測試代碼,沒問題的話就提交。
      vi api.hpp
      git add .
      git commit -m "fix:merge master"
      
    • 切換到本地 master 分支,把 develop 合并到本地 master,最后提交到遠程倉庫。
      git switch master
      git merge develop
      git push origin master
      

git 解決沖突

  • 沖突產生原因:不同分支修改了同一文件的同一行或者相鄰行
  • 解決原則:
    • 不要影響其他人提交的功能,也不能破壞自己提交的功能。
    • 協商解決。
  • 解決方式:git merge
  • 建議:提交前先 git pull 拉取最新代碼。

請添加圖片描述


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15359.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15359.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15359.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL 優化

SQL 優化是指通過各種手段提高 SQL 查詢的執行效率,減少資源消耗,提高數據庫的整體性能。以下是一些詳細的 SQL 優化方法,包括索引優化、查詢優化、數據庫設計優化等。 1. 索引優化 創建適當的索引: 單列索引:在查詢中頻繁使用的單個列上創建索引。多列索引(復合索引):…

STM32手寫超頻到128M函數

今天學習了野火的STM32教程學會了如何設置STM32的時鐘頻率,步驟比較詳細,也很容易理解,就是視頻教程不能跳著看,只能一節節的看,不然會知識不連貫,造成有些知識不理解,連續著看還是沒有什么難度…

docker-file 網絡

docker掛載 1.綁定掛載(Bind Mounts):綁定掛載是將主機上的文件或目錄掛載到容器中。 docker run -v /host/path:/container/path image_name 2.卷掛載(Volume Mounts):卷掛載將 Docker 數據卷掛載到容器中…

【CTF Web】CTFShow web4 Writeup(SQL注入+PHP+字符型注入)

web4 1 管理員阿呆又失敗了&#xff0c;這次一定要堵住漏洞 解法 注意到&#xff1a; <!-- flag in id 1000 -->攔截很多種字符&#xff0c;連 select 也不給用了。 if(preg_match("/or|\-|\\\|\/|\\*|\<|\>|\!|x|hex|\(|\)|\|select/i",$id)){die(&q…

yolov8推理由avi改為mp4

修改\ultralytics-main\ultralytics\engine\predictor.py&#xff0c;即可 # Ultralytics YOLO &#x1f680;, AGPL-3.0 license """ Run prediction on images, videos, directories, globs, YouTube, webcam, streams, etc.Usage - sources:$ yolo modepred…

Android開發-Android開發中的TCP與UDP通信策略的實現

Android 開發中的 TCP 與 UDP 通信策略的實現 1. 前言2. 準備工作3. Kotlin 中 TCP 通信實現客戶端代碼示例&#xff1a;服務器代碼示例&#xff1a; 4. Kotlin 中 UDP 通信實現客戶端代碼示例&#xff1a;服務器代碼示例&#xff1a; 5. TCP 與 UDP 應用場景分析TCP 實現可靠傳…

搭建訪問阿里云百煉大模型環境

最近這波大降價&#xff0c;還有限時免費&#xff0c;還不趕快試試在線大模型&#xff1f;下面整理訪問百煉平臺的千問模型方法。 創建RAM子賬號并授權 創建RAM子賬號 1. “訪問控制RAM”入口&#xff08;控制臺URL&#xff09; 然后點擊進入“RAM管理控制臺” 2. 添加用戶 …

vue 區分多環境打包

需求&#xff1a;區分不同的環境&#xff08;測試、正式環境&#xff09;&#xff0c;接口文檔地址不同&#xff1b; 配置步驟&#xff1a; 1、在根目錄下面新建 .env.xxx 文件&#xff08;xxx 根據環境不同配置&#xff09; 文件中一定要配置的參數項為&#xff1a;NODE_ENV…

【Python搞定車載自動化測試】——Python實現CAN總線Bootloader刷寫(含Python源碼)

系列文章目錄 【Python搞定車載自動化測試】系列文章目錄匯總 文章目錄 系列文章目錄&#x1f4af;&#x1f4af;&#x1f4af; 前言&#x1f4af;&#x1f4af;&#x1f4af;一、環境搭建1.軟件環境2.硬件環境 二、目錄結構三、源碼展示1.診斷基礎函數方法2.診斷業務函數方法…

python 火焰檢測

在日常生活,總是離不開火,有時候我們需要預防火災發生,但是我們又不可能一直盯著,這時候我們就需要一款程序幫我們盯著,一旦發生火災從而告知我們,今天就帶大家編寫這么一款應用。 安裝需要的庫 pip install opencv-python 代碼實現 import cv2 # Library for…

qmt量化教程4----訂閱全推數據

文章鏈接 qmt量化教程4----訂閱全推數據 (qq.com) 上次寫了訂閱單股數據的教程 量化教程3---miniqmt當作第三方庫設置&#xff0c;提供源代碼 全推就主動推送&#xff0c;當行情有變化就會觸發回調函數&#xff0c;推送實時數據&#xff0c;可以理解為數據驅動類型&#xff0…

mysql中使用 mysqldump 實現跨機器備份|數據同步

1.如果同步數據庫&#xff0c;必須先創建數據庫&#xff1a; mysqldump -h 192.168.1.10 --lock-tablesfalse -uroot -proot db_name | mysql -h127.0.0.1 -uroot -proot db_name2.過濾掉不想要的表(沒試過&#xff0c;但是試過轉為sql文件的) mysqldump -h 192.168.1.10 --…

vs2019 c++ 函數的返回值是對象的值傳遞時候,將調用對象的移動構造函數

以前倒沒有注意過這個問題。但編譯器這么處理也符合移動構造的語義。因為本來函數體內的變量也要離開作用域被銷毀回收了。測試如下&#xff1a; 謝謝

實現信號發生控制

1. 信號發生器的基本原理 信號發生器是一種能夠產生特定波形和頻率的電子設備&#xff0c;常用于模擬信號的產生和測試。 信號發生器的基本原理 信號發生器的工作原理基于不同的技術&#xff0c;但最常見的類型包括模擬信號發生器和數字信號發生器&#xff08;DDS&#xff0…

[SCTF2019]babyre

打開看看還是有花指令 解除后首先pass1是解maze&#xff0c;好像又是三維的 x是25&#xff0c;也就是向下跳五層,注意是立體的 得到 passwd1&#xff1a; ddwwxxssxaxwwaasasyywwdd 接著往下看 有一個加密函數IDA逆向常用宏定義_lodword-CSDN博客 unsigned __int64 __fastca…

primeflex樣式庫筆記 Display相關的案例

回顧 寬度設置的基本總結 w-full&#xff1a;表示widtdh&#xff1a;100%&#xff1b;占滿父容器的寬度。 w-screen&#xff1a;表示占滿整個屏幕的寬度。 w-1到w-12&#xff0c;是按百分比劃分寬度&#xff0c;數字越大&#xff0c;占據的比例就越大。 w-1rem到w-30rem&…

Oracle的安裝以及一些相關問題

系列文章目錄 Oracle的安裝以及一些相關問題 文章目錄 系列文章目錄前言一、Oracle的安裝二、常用命令三、誤刪dbf四、PLSQL亂碼五、oracle更換數據庫字符集總結 前言 一段時間沒更新&#xff0c;主要最近一直在找工作&#xff0c;最終還是順著春招找到工作了&#xff0c;現在…

美信時代監控易:堆疊交換機的監控與配置管理策略

隨著企業數字化轉型的加速&#xff0c;網絡架構的複雜性日益提升&#xff0c;堆疊交換機作為高可靠性、靈活擴展性的解決方案&#xff0c;在網絡基礎設施中扮演著至關重要的角色。然而&#xff0c;如何確保堆疊交換機的穩定運行&#xff0c;實現高效監控與配置管理&#xff0c;…

剖析 OceanBase 應對高并發的技術策略

推薦一個AI網站&#xff0c;免費使用豆包AI模型&#xff0c;快去白嫖&#x1f449;海鯨AI 在當今互聯網時代&#xff0c;高并發場景下的數據庫處理能力成為了許多應用的關鍵需求。為了滿足用戶對快速響應和高吞吐量的期望&#xff0c;數據庫系統需要采用一系列技術來優化并發性…

七大經典排序算法——冒泡排序

文章目錄 &#x1f4d1;冒泡排序介紹&#x1f324;?代碼實現&#x1f324;?做個簡單的優化&#x1f324;?復雜度和穩定性分析??結語 &#x1f4d1;冒泡排序介紹 冒泡排序是一種簡單但效率較低的排序算法。它重復地比較相鄰的兩個元素&#xff0c;如果順序不對則交換它們&…