banner
武大胆

武大胆

不能为这个世界留下些什么,但是却想在这个世界留下些什么!
bilibili
x
discord user
email
steam

工具篇-Git

是什麼?#

能幹什麼?#

image

本地版本管理#

  • 記錄查看 git reflog
  • 版本重置 git reset
  • 分支管理
    • 分支創建 git branch
    • 分支切換 git checkout
    • 分支合併 git merge

遠程交互關聯#

  • 拉取源碼 git clone <git項目地址>
  • 關聯遠程倉庫進行交互
    • 添加遠程倉庫 git remote add <別名> <地址>
    • 上傳代碼 git push <倉庫別名> <分支名>
    • 下載代碼 git pull <倉庫別名> <分支名>
    • 分支關聯 git branch --set-upstream-to=<遠程倉庫名稱>/master master

如何使用?#

安裝與配置#

  1. 下載與安裝 git 客戶端
  2. 設置 git 用戶信息
git config --global user.name "wuxiangjun"
git config --global user.email "wuxiangjun1998@gmail.com"
#查看是否配置成功
git config --list
  1. 生成 git 密鑰

默認在用戶目錄下的.ssh 目錄裡

ssh-keygen -t rsa -C "你的郵箱地址"

Tip

之後使用時如果需要上傳或者修改遠端倉庫,則需要將公鑰配置到遠端倉庫伺服器上,而私鑰由自己保留在客戶端本機,以便於 Git 使用時完成校驗。

本地基本使用#

Note

基本概念:

  • 工作區: 自己硬碟上實實在在的文件位置,通過 add 到暫存區;
  • 暫存區: 在真確確認提交之前,需要將文件保存到暫存區,之後確認了再 commit 到本地倉庫;
  • 本地倉庫: 是 git init 之後產生的.git 文件夾。

創建本地倉庫和主分支#

  • git init:在當前目錄生成一個本地倉庫,並且默認創建一個 master 分支
  • git status:查看當前 git 倉庫中文件的狀態

提交到暫存區和本地倉庫#

  • git add .:將當前目錄下所有未追蹤的文件添加到暫存區
  • git commit -m "提交說明":將暫存區文件提交到本地倉庫
  • git commit -am:暫存 + 提交

版本重置#

  • git log:可以查看提交的記錄,但是只能查看當前版本之前的日誌
  • git reflog:可以查看所有提交的記錄,包括當前版本之後的。【HEAD 標記,表示當前所在的版本】
  • git reset --hard HEAD^/記錄編號:將文件回到某個版本下的狀態【HEAD^ 表示前一個版本】

分支管理#

  • git branch <新分支名> <提交哈希>:加分支名表示創建分支,不加表示顯示當前所有分支
  • git switch/checkout(舊) <分支名>切換分支
  • git merge <分支名>合併分支,要改哪個分支,就先切過來,然後 merge 別的分支

關聯交互使用#

Important

基本概念:

  • 平常在公司裡,一般會用 gitlab 搭建一個公司內部的 git 伺服器用於存放源碼;
  • 需要和管理員溝通,獲取帳號權限,可能需要提供公鑰,也可能是分配一個帳號;
  • gitee 和 github:則是一個開源代碼托管平台,相當於一個遠程倉庫。

創建和關聯遠程倉庫#

  • 使用 Github 或者 Gitee 自行創建倉庫
  • 將開始生成的公鑰添加到遠程倉庫中
  • 測試:
    • ssh -T git@github.com
    • nslookup github.com

Warning

記事一則:

  • 使用 ssh -T git@github.com 正常驗證通過,但是無法正常 git clone
  • 提示 ssh: Could not resolve hostname github.com: Non-recoverable failure in name resolution;
  • 折騰一天無果,powershell 正常解析 DNS,但是 git bash 始終無法正常使用,故添加 nslookup github.com命令測試;
  • 臨時解決方案:使用 powershell 進行 git 命令操作。
  • git remote add <倉庫別名> git 項目地址:添加一個遠程倉庫,並且給他取個名字

Tip

添加別名前可查看項目中已配置的遠程倉庫及其對應的 URL,如果發現名稱已配置,可以根據需要修改或刪除‌

  • git remote -v:查看當前關聯的倉庫
  • git remote rename origin new-origin:修改遠程倉庫別名
  • git remote set-url origin <new_path>:重置倉庫地址
  • git remote remove origin:刪倉庫

拉取源碼#

  • git clone git項目地址
  • git pull 倉庫別名 分支名pull 實際上是 fetchmerge 的組合

上傳源碼#

  • git push 倉庫別名 分支名:上傳本地倉庫的某某分支到關聯的遠程倉庫
  • git push -u origin main:main:推送本地的main分支到遠程倉庫 origin,並且將本地的 main分支設置為跟蹤遠程的 main分支(即上游分支)
  • git branch --set-upstream-to=<倉庫別名>/master master:同上,將默認的 push pull 的遠程倉庫 <倉庫別名>/master 綁定到本地 master,之後可以省略輸入倉庫名和分支名。

補充知識#

Git 工作流面面觀 ——Gitflow 工作流

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。