分布式版本控制工具Git

一.開發中為什么需要Git

因為在多人開發中Git可以管理代碼,而且每個人都可以從庫里面下載代碼進行修改,每個人上傳和修改Git都會有記錄,如果出現大錯誤,還可以回退到正常版本。

二.Git原理

我們首先從代碼庫(Remote)下載代碼到工作區(workspace),然后寫代碼,寫好代碼放到暫存區(index),覺得沒問題了,就上傳到本地庫(Repository),本地庫再上傳到代碼庫(Remote)。

三. 基本操作

1.創建一個遠端代碼庫(Remote),示例:在ubuntu上面創建遠端代碼庫

?????隨便創建一個文件夾,用于存放git管理的代碼庫

sudo mkdir GitLib    //創建文件夾
???????git init --bare      //創建裸代碼庫,創建完后,自動生成別名origin,后面用

2. 在工作區拉取遠端代碼庫。

  • 本地端創建一個工作區的文件夾,進入Git Bash Here

  • 總共有四種協議(http,https,ssh,git)來和遠端交互通,常用我們用ssh公鑰進行git服務器交互就行。
    ssh-keygen -t rsa    //生成公鑰
  • ?一直回車,就會把公鑰放在C:\Users\SF\.ssh,復制里面公鑰
  • 把公鑰放到服務器上面
    cd ~
    cd .ssh
    vi authorized_keys
    然后把剛剛復制的公鑰放進去保存就行
  • 拉取服務器代碼
     git clone ssh://harry@192.168.235.130:/home/harry/VsCodeProject/GitLib

    就會出現以下文件夾,(當然文件夾名字隨便改,這是我改過的,原來的名字和服務器上面一樣)

3.基礎設置(用于后面知道是誰上傳的代碼什么的)

cd GitLib-sxf    //進入文件夾
git config user.name sxf    //設置用戶名
git config user.email sxf@qq.com    //設置郵箱

4.?Git各種操作指令

git add .        //把所有文件放到暫存區(index)
git add 文件名   //把單個文件放到暫存區(index)git commit .  -m "feat:function"      //把所有文件放到本地代碼庫(Repository)
git commit 文件名 -m "feat:function"  //把單個文件放到本地代碼庫(Repository)git push origin master//把存放在本地代碼庫的代碼放到服務器上面(Remote),origin是創建服務器時候默認名,master是分支,意思是從那支分支提交到服務器origingit pull        //從服務器拉取代碼到工作區git status      //查看狀態,代碼處于什么階段
git log        //生成提交日志,看誰,在什么時候提交什么東西

5.逆向操作

git restore -S 文件名    //index->workspace,暫存區回退到工作區git reset --soft head^    //Repository->index,本地庫回退到暫存區index
git reset --mixed head^    //Repository->workspace,本地庫回退到工作區workspace
git reset --hard head^    //Repository->null,本地庫直接刪除之前操作git checkout        //workspace -> null,重置workspace里面的修改,例如:你添加一個函數,但你不想要了,可以使用這個
git checkout -- file
git checkout -f

6.整理操作

git commit --amend    //整理上一次提交,一個代碼,你每次加一個函數就提交一次,日志里面就有你多次提交記錄,顯得很麻煩,如果只想日志里面出現一次,就用這個git rebase -i    //多次提交日志合并成一個

7.分支操作

git branch    //查看分支git branch 分支名    //創建分支
git checkout -b 分支名    //創建分支,并進入這個分支
git checkout 分支名    //切換到指定分支 
git switch 分支名    //切換到指定分支 git merge    //合并分支git branch -d 分支名    //刪除分支如果你是在分支線上面添加修改代碼,就得以下步驟更新代碼數據:1.拉取 master最新數據;
git switch master//進入主線
git pull    //拉取最新代碼2.先把 master合并到develop
git switch 分支名    //變更到分支
git merge master    //合并主線最新代碼3.然后測試代碼
進入代碼解決沖突(因為人家比你先寫好代碼提交,所有你拉取最新代碼后,占用同樣位置,所有產生沖突)
git add.
git commit . -i -m "......"    //.是提交所有文件,-i是解決沖突提示文件,-m是添加提示4.合并到master,測試如果ok提交到遠端
git checkout master
git merge 分支名
git push origin master

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

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

相關文章

OpenAI重磅開源GPT-oss:首款支持商用的AI Agent專屬模型

今日凌晨,OpenAI宣布開源兩款全新大模型——GPT-oss-120B(1168億參數)與GPT-oss-20B(209億參數),成為全球首個支持商業化應用的開放權重推理模型。該模型專為AI智能體(Agent)設計&am…

【STM32】GPIO的輸入輸出

GPIO是通用的輸入輸出接口,可配置8種輸入模式,輸出模式下可控制端口輸出高低電平,用于點亮LED、控制蜂鳴器、模擬通信協議等;輸入模式下可以讀取端口的高低電平或者電壓,用于讀取按鍵、外接模塊的電平信號、ADC的電壓采…

5分鐘了解OpenCV

在數字化時代,圖像和視頻已經成為信息傳遞的核心載體。從手機拍照的美顏功能到自動駕駛的路況識別,從醫學影像分析到安防監控系統,視覺技術正深刻改變著我們的生活。而在這背后,OpenCV 作為一款強大的開源計算機視覺庫&#xff0c…

Oracle 關閉 impdp任務

Oracle 關閉 impdp任務 執行 impdp system/123456 attachSYS_EXPORT_TABLE_01 執行 stop_jobimmediate

數據結構——鏈表2

1.2 實現單鏈表 在上一篇文章中&#xff0c;單鏈表的實現只有一少部分&#xff0c;這一篇接著來了解單鏈表剩下的接口實現。 SList.h#pragma once #include<stdio.h> #include<stdlib.h> #include<assert.h>//定義單鏈表就是定義節點&#xff0c;因為單鏈表…

Windows和Linux應急響應以及IP封堵

目錄 1、Windows入侵排查思路 1.1 檢查系統賬號安全 1.2 檢查異常端口、進程 1.3 檢查啟動項、計劃任務、服務 1.4 檢查系統相關信息 1.5 自動化查殺 1.6 日志分析 系統日志分析 Web 訪問日志 2、Linux 入侵排查思路 2.1 賬號安全 2.1.1、基本使用 2.1.2、入侵排查…

MIT成果登上Nature!液態神經網絡YYDS

2025深度學習發論文&模型漲點之——液態神經網絡液態神經網絡&#xff08;Liquid Neural Networks&#xff0c;LNN&#xff09;是一種受生物神經系統啟發的連續時間遞歸神經網絡&#xff08;RNN&#xff09;&#xff0c;其核心創新在于將靜態神經網絡轉化為由微分方程驅動的…

AI 對話高效輸入指令攻略(四):AI+Apache ECharts:生成各種專業圖表

- **AI與數據可視化的革命性結合**:介紹AI如何降低數據可視化門檻,提升效率。 - **Apache ECharts:專業可視化的利器**:使用表格對比展示ECharts的特點、優勢和適用場景。 - **四步實現AI驅動圖表生成**:通過分步指南講解從環境準備到圖表優化的全流程,包含多個代碼示例及…

vue2 基礎學習 day04 (結構/樣式/邏輯、組件通信、進階語法)下

一、非父子通信-event bus 事件總線1.作用非父子組件之間&#xff0c;進行簡易消息傳遞。(復雜場景→ Vuex)2.步驟創建一個都能訪問的事件總線 &#xff08;空Vue實例&#xff09;import Vue from vue const Bus new Vue() export default BusA組件&#xff08;接受方&#xf…

ubuntu 20.04 C和C++的標準頭文件都放在哪個目錄?

在 Ubuntu 20.04 中&#xff0c;C 和 C 標準頭文件的存放目錄主要由編譯器&#xff08;如 GCC&#xff09;的安裝路徑決定&#xff0c;通常分為以下兩類&#xff1a;?1. C 標準頭文件?C 語言的標準頭文件&#xff08;如 <stdio.h>、<stdlib.h> 等&#xff09;默認…

change和watch

是的&#xff0c;你理解得很對&#xff01; change 與 v-model 的結合&#xff1a;change 事件通常用于監聽 表單元素的變化&#xff0c;但它并不一定意味著值發生了變化。它主要是當 用戶與輸入框交互時&#xff08;如點擊選項、選擇文本框內容、提交表單等&#xff09;觸發的…

分布式微服務--GateWay(1)

一、什么是微服務網關&#xff08;API Gateway&#xff09; 定義&#xff1a;微服務網關是整個系統請求的統一入口&#xff0c;負責請求轉發、過濾處理、安全校驗等。 作用&#xff1a; 請求路由 日志記錄 權限控制 參數校驗 解決跨域問題 黑白名單控制 限流、熔斷、降級…

大文件斷點續傳(vue+springboot+mysql)

斷點續傳vue前端代碼后端代碼controller 層service層持久層主表&#xff0c;初始化單次上傳文件表&#xff0c;單次上傳所有的文件記錄文件分塊表科普信息參考其他博主 流程圖 vue前端代碼 這里是只做了demo示例&#xff0c;主線測試沒什么問題&#xff0c;前端同學可參考修…

Nodejs》》MySql

Node.js 操作MySQL數據庫 文檔 # 項目要先安裝mysql包npm i mysqlxx // 安裝指定版本npm i mysql // 默認安裝最新版本 # 連接 mysq// 使用連接池連接const mysql require(mysql)# 建立連接const db mysql.createPool({host:, // 數據庫的IP地址user:ro…

金倉數據庫常見問題(持續更新)

目錄 1.查看大小是否敏感寫參數&#xff0c;提示&#xff1a;未認可的配置參數 "case_sensitive" 2.sys_backup.sh init時提示can not connect the primary node 3.設置邏輯備份運行腳本時提示錯誤are not allowed to use this program (crontab) 4.修改表字段類…

Docker Buildx最佳實踐:多架構鏡像構建指南

文章目錄為什么需要 Docker Buildx安裝與啟用 Docker Buildx創建多架構構建器實例構建多架構鏡像優化構建性能調試多架構構建實戰案例&#xff1a;構建 Go 應用多架構鏡像總結Docker Buildx 是 Docker 官方推出的擴展工具&#xff0c;用于支持多平臺鏡像構建&#xff0c;簡化跨…

你用的是什么鍵盤?

在電競行業飛速發展的當下&#xff0c;游戲鍵盤作為玩家操作的核心載體&#xff0c;其性能表現直接影響著游戲體驗與競技結果。而賽卓電子推出的磁軸鍵盤專用芯片 SC4823&#xff0c;憑借一系列突破性的技術特性&#xff0c;正成為游戲鍵盤領域的性能革新者。?對于游戲玩家而言…

Activiti 中各種 startProcessInstance 接口之間的區別

前言在用 RuntimeService 接口啟動流程實例時&#xff0c;總是分不清楚不同 startProcessInstanceXXX 接口之間的區別&#xff0c;這篇文章基于 Activiti 7.0.0.GA 版本&#xff0c;對這一類接口進行一個梳理和歸類。詳解接口列表RuntimeService 接口中以 startProcessInstance…

新手BUG:函數中 static 變量的賦值語句只會執行一次

在 C 函數中使用 static 變量時&#xff0c;很多新手會陷入一個認知誤區&#xff1a;認為變量的初始化語句會在每次函數調用時執行。比如在bool funcA() { // Q&#xff1a;多次調用funcA&#xff0c;funcB會被執行幾次&#xff1f;// A&#xff1a;1次static bool value func…

Python 基礎詳解:數據類型(Data Types)—— 程序的“數據基石”

一、引言&#xff1a;為什么數據類型如此重要&#xff1f;在 Python 編程中&#xff0c;數據類型決定了&#xff1a;數據的存儲方式可以對數據執行的操作數據的取值范圍不同類型之間的運算規則理解數據類型是編寫正確、高效程序的基礎。Python 是動態類型語言&#xff0c;雖然你…