不同場景下git指令的搭配

添加賬號

git config --global user.name "YourName"
git config --global user.email "your_email@example.com"

設置 Git 默認分支名稱為 main

git config --global init.defaultBranch main

初始化倉庫:

git init

配置SSH 密鑰

如果你使用 SSH 方式連接 GitHub,需要生成并添加 SSH 密鑰到 GitHub:

ssh-keygen -t rsa -b 4096 -C "your@email.com"

然后將 ~/.ssh/id_rsa.pub 中的內容復制粘貼到 GitHub 的 Settings > SSH and GPG keys 頁面。

初始化本地倉庫并上傳代碼

情況一:新建項目上傳到 GitHub
# 進入你的項目目錄
cd /path/to/your/project# 初始化 Git 倉庫
git init# 添加所有文件到暫存區
git add .# 提交更改
git commit -m "Initial commit"# 關聯遠程倉庫(HTTPS方式)
git remote add origin https://github.com/your-username/repo-name.git# 或者使用 SSH 方式(推薦)
git remote add origin git@github.com:your-username/repo-name.git# 推送代碼到 GitHub 主分支(main)
git push -u origin main

💡 如果你本地是 master 分支,而 GitHub 默認是 main,你可以重命名分支:

git branch -M main

情況二:已有 GitHub 倉庫,克隆到本地再提交代碼
# 克隆遠程倉庫到本地
git clone https://github.com/your-username/repo-name.git# 進入項目目錄
cd repo-name# 添加新文件或修改內容
# ...# 添加更改
git add .# 提交更改
git commit -m "Add new feature"# 推送到遠程倉庫
git push origin main

提交修改到本地(切換分支時候需要先執行這一步)

git add .
git commit -m "保存當前工作進度"

查看當前 Git 倉庫關聯的遠程庫

git remote -v

這個命令會列出所有與該倉庫關聯的遠程庫及其 URL。輸出結果通常看起來像這樣:

origin  https://github.com/user/repo.git (fetch)
origin  https://github.com/user/repo.git (push)

在這個例子中,origin 是遠程庫的名字,而 https://github.com/user/repo.git 是遠程庫的 URL。(fetch)(push) 表明該遠程庫用于 fetch(拉取) 和 push(推送) 操作。通常情況下,你會看到同一個 URL 對應著 fetch 和 push 操作,但也可以配置不同的遠程庫分別用于這些操作。

如果你只想知道用于推送的遠程庫,可以專注于那些標注了 (push) 的行。例如,上面的例子顯示 origin 遠程庫被配置為向 https://github.com/user/repo.git 推送更改。

添加遠程庫

git remote add github git@github.com:ergevv/xxxxx.git

這個倉庫在電腦本地叫github,指向的是github的倉庫。

git push github master

將本地的分支推送到github指向的git@github.com:ergevv/xxxxx.git倉庫的master分支。

推送到特定分支

  1. 查看當前分支
git branch
  1. 創建并切換到 main 分支
git checkout -b main

這會基于當前提交創建一個新的 main 分支,并切換過去。

  1. 設置遠程跟蹤(關聯遠程倉庫的 main 分支)
    如果你確定遠程倉庫已經有 main 分支,可以直接拉取:
git checkout -b main origin/main

創建一個新的本地分支 main,并讓它跟蹤遠程分支 origin/main(也就是你之前添加的遠程倉庫 github 的 main 分支),然后切換到這個新分支。

  1. 推送本地 main 分支到 GitHub 的 main
git push github main

這樣就會把你的本地 main 分支推送到 GitHub 上的 main 分支了。


清理遠程的分支

git push github --delete master

刪除本地指向的倉庫:

git remote remove github

將本地的分支 dev/test 推送到 GitHub 上的遠程倉庫,并且希望它被推送到 遠程的 master 分支:

git push github dev/test:master

下載指定分支

  1. 命令格式:
git clone -b <分支名> <倉庫地址> <本地目錄名(可選)>

示例:從 GitHub 下載名為 dev/test 的分支:

git clone -b dev/test https://github.com/ergevv/xxxx.git
  1. 如果已經克隆了倉庫,但想切換到其他分支
cd path/to/project     # 進入已克隆的項目目錄
git fetch               # 獲取遠程所有分支信息
git checkout dev/test  # 切換到指定分支

如果提示 Branch 'dev/mcapRecord' not found,說明你需要先拉取遠程分支:

git fetch origin dev/test
git checkout -b dev/test origin/dev/test

fetch和pull的區別

git fetch 是 Git 中一個非常有用的命令,它主要用于從遠程倉庫獲取最新的信息和更新,但不會自動合并或修改你當前的工作目錄。具體來說,git fetch 的作用可以概括為以下幾個方面:

  1. 獲取遠程更新

    • git fetch 會連接到指定的遠程倉庫,并拉取所有本地沒有的數據(如新的提交、分支等),但不會將這些更改自動合并到你的工作目錄中。
    • 這意味著你可以查看遠程發生了哪些變化,而不用擔心這些變化會直接影響你的工作。
  2. 更新遠程引用

    • 它會更新本地關于遠程分支的信息(即遠程跟蹤分支)。例如,如果你在遠程倉庫上有一個名為 origin/master 的分支,執行 git fetch 后,Git 會確保你的本地 origin/master 指向與遠程倉庫一致的位置。
  3. 不改變本地分支的狀態

    • git pull 不同,git fetch 不會嘗試合并或重新應用任何遠程的更改到你當前的分支。因此,它是安全的,尤其是在你不確定是否需要將遠程的更改合并到當前工作中時。
1. 查看遠程分支的變化
git fetch origin
  • 執行上述命令后,你可以通過 git loggit diff 來比較本地分支與遠程分支之間的差異。

例如,查看 master 分支與遠程 origin/master 的差異:

git log master..origin/master
git diff master origin/master
2. 更新遠程跟蹤分支

假設你想切換到一個新的遠程分支,但該分支尚未在本地存在:

git fetch origin dev/test
git checkout dev/test
  • 這會確保本地有最新的 dev/test 分支信息,然后你可以安全地切換到這個分支。
3. 在合并之前檢查遠程更改

如果你想在實際合并之前查看遠程分支上的最新更改,可以先執行 git fetch,然后手動決定如何處理這些更改(比如是否合并):

git fetch origin
# 現在你可以選擇是否以及如何合并
git merge origin/master
# 或者
git rebase origin/master

注意:當git pull時,如何本地有修改的文件,那么該文件拉取時,不是遠程倉庫的最新版本,而是本地的修改版本。

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

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

相關文章

NLP——遷移學習

一、遷移學習的概念 1.預訓練模型(Pretrained model) 定義: 簡單來說別人訓練好的模型。一般預訓練模型具備復雜的網絡模型結構&#xff1b;一般是在大量的語料下訓練完成的。 2.微調(Fine-tuning) 定義:一般是對預訓練語言模型&#xff0c;進行垂直領域數據的微調&#xff0c;…

Ubuntu 安裝

文章目錄硬件準備下載 Ubuntu 鏡像創建可啟動 USB從 USB 驅動器啟動安裝 Ubuntu不要忘記更新&#xff01;用了十多年的筆記本&#xff0c;手邊正好有個500G的固態&#xff0c;準備換上。考慮到機器的硬件配置&#xff0c;現在使用windows10實在是有點卡&#xff0c;ubuntu卻剛好…

【46】MFC入門到精通——MFC顯示實時時間,獲取系統當前時間GetCurrentTime()、獲取本地時間GetLocalTime()

文章目錄1 MFC獲取時間方法方法一&#xff1a;獲取系統當前時間GetCurrentTime()方法二&#xff1a;獲取本地時間GetLocalTime()使用GetTickCount()獲取程序運行時間2 MFC顯示實時時間 使用方法2.1 獲取時間2.2 類向導 添加定時器函數 OnTimer2.3 初始化 設置定時器2.4 定時器函…

Linux717 SWAP擴容;邏輯卷條帶化

root192.168.235.20s password:┌────────────────────────────────────────────────────────────────────┐│ ? MobaXterm 20.0 ? ││ …

人類社會發展過程中的熵增定律

引子研究美國羅斯福新政期間的法案為什么會對美國經濟恢復起作用&#xff1f;與千金買馬骨和移木賞金之間的區別與聯系&#xff1f;以下為豆包 AI回答一、羅斯福新政法案對美國經濟起作用的原因羅斯福新政&#xff08;1933-1939年&#xff09;通過一系列政策應對大蕭條&#x…

Spring-AI系列-入門篇-核心概念、組件和生產要素

原文-Spring AI知識庫&#xff0c;歡迎大家評論互動 師父領進門&#xff0c;修行靠自己。 Spring AI is an application framework for AI engineering. Its goal is to apply to the AI domain Spring ecosystem design principles such as portability and modular design an…

從瀏覽器到服務器:TCP 段的網絡傳輸之旅

本文以簡化的網絡架構為例&#xff0c;詳細介紹了當你在瀏覽器中輸入網址&#xff08;例如www.google.com&#xff09;并按下回車鍵后&#xff0c;TCP段的完整傳輸過程。我們將探討DNS解析、ARP、TCP/IP封裝、PAT和路由如何協同工作&#xff0c;將數據從個人電腦通過局域網和廣…

HCIE - 云計算拿下后的職業選擇如何規劃?

Hello&#xff01;大家好&#xff0c;小編是一名專注 IT 領域的資深探索家。我們聊聊HCIE - 云計算&#xff0c;這個認證作為華為認證體系中云計算領域的專家級認證&#xff0c;標志著持有者具備企業級云架構設計、復雜云平臺運維及跨場景技術落地能力。但認證本身只是職業進階…

1-創建Vue3項目

創建Vue3項目前提 已安裝 18.3 或更高版本的 Node.js vue 官網 https://vuejs.org/ 創建一個 Vue 應用 ① 新建項目目錄&#xff0c;使用 VSCode 打開 VSCode 可安裝 Vue-Official 插件協助開發 ② 執行 create vue 指令創建 vue 應用 npm create vuelatest這一指令將…

Codex,Copilot 是什么

Codex是什么 Codex 是 OpenAI 研發的一款專注于代碼生成的大型語言模型,它可以根據自然語言描述自動編寫程序代碼,在軟件開發、自動化測試等領域展現出了強大的應用潛力。下面為你詳細介紹: 1. 核心功能 代碼生成:Codex 能夠依據自然語言指令生成代碼,像函數、類或者完整…

Typecho插件開發:自定義表單驗證規則addRule實戰指南

文章目錄 Typecho表單驗證進階:為插件和主題添加自定義addRule驗證規則 引言 一、Typecho表單驗證基礎 1.1 Typecho表單系統概述 1.2 addRule方法解析 二、自定義驗證規則實現 2.1 創建自定義驗證類 2.2 注冊自定義驗證規則 2.3 使用自定義驗證規則 三、高級驗證場景實現 3.1 …

數據分布是如何影響目標檢測精度的

文章目錄一、研究背景與目標模型效果提升數據集優化二、研究問題明細各方向的關聯性與核心邏輯1. 高質量數據集的高效篩選與主動學習應用2. 基于推理結果的數據補充與增強方向優化3. 多類別場景下目標尺度與模型精度的關聯性4. 損失函數與數據增強對精度的量化影響5. 目標類型專…

Python 網絡爬蟲 —— 代理服務器

一、會話&#xff08;Session&#xff09;&#xff08;一&#xff09;核心邏輯HTTP 本身無記憶&#xff0c;每次請求獨立。會話&#xff08;Session&#xff09; 就是為解決這問題&#xff0c;讓客戶端&#xff08;瀏覽器&#xff09;和服務器 “記住” 交互狀態&#xff08;比…

Vue在線預覽Excel和Docx格式文件

前提&#xff1a;本次示例基于Vue2.x&#xff0c;所用插件為Vue-Office。 一、Vue-Office 插件簡介 Vue-Office 是一個一站式解決方案&#xff0c;支持多種 Office 文件格式的在線預覽&#xff0c;包括&#xff1a; Word&#xff08;.docx&#xff09;Excel&#xff08;.xlsx、…

提升(Boosting)及 Python 示例

咱們結合這張圖&#xff0c;把 “提升” 想象成 “做錯題本 請老師補課” 的過程&#xff1a;第一波數據&#xff08;最上面的圓圈&#xff09;&#xff1a;“第一次作業”假設你第一次做 100 道數學題&#xff08;圖中圓圈里的綠點白點代表不同的題&#xff09;&#xff0c;做…

【生產實踐】Linux中NAS掛載丟失后提示“過舊的文件句柄”錯誤解決

太長不看版&#xff1a; 問題&#xff1a;nas掛載在系統里掉了&#xff0c;使用df或ls訪問目錄提示過舊的文件句柄解決過程&#xff1a; 和機房聯系&#xff0c;發現NAS服務器重啟了重新執行mount發現掛不上先umount掉當前掛載&#xff0c;再重新執行mount命令問題解決 umount …

JUnit4

JUnit4 介紹JUnit 是 Java 編程語言的單元測試框架&#xff0c;用于編寫和運行可重復的自動化測試。JUnit 特點&#xff1a;JUnit 是一個開放的資源框架&#xff0c;用于編寫和運行測試。提供注解來識別測試方法。提供斷言來測試預期結果。JUnit 測試允許你編寫代碼更快&#x…

Python-TCP編程-UDP編程-SocketServer-IO各種概念及多路復用-asyncio-學習筆記

序 欠4前年的一份筆記 &#xff0c;獻給今后的自己。 網絡編程 Socket介紹 Socket套接字 Python中提供socket.py標準庫&#xff0c;非常底層的接口庫。 Socket是一種通用的網絡編程接口&#xff0c;和網絡層次沒有一一對應的關系。 協議族 AF表示Address Family&#xff0c;用于…

Mybatis-開發一個類似mybatisplus的mybatis擴展,該怎么入手?

開發一個類似mybatisplus的mybatis擴展&#xff0c;該怎么入手&#xff1f; 要開發一個類似于 MyBatis-Plus 的 MyBatis 擴展框架&#xff0c;你需要從以下幾個核心方面入手&#xff0c;逐步構建出一個功能完整、易用性強、兼容性好的增強型 MyBatis 框架。&#x1f9f1; 一、整…

深入了解linux系統—— 信號的捕捉

前言 信號從產生到處理&#xff0c;可以分為信號產生、信號保存、信號捕捉三個階段&#xff1b;了解了信號產生和保存&#xff0c;現在來深入了解信號捕捉。 信號捕捉 對于1-31號普通信號&#xff0c;進程可以立即處理&#xff0c;也可以不立即處理而是在合適的時候處理&#x…