1. 程式人生 > 其它 >git 速查筆記

git 速查筆記

技術標籤:其它技能git

理念 & 技巧 & 提示

  • git 關鍵詞 & 特性

    分散式 交換 版本控制 可離線 分支 基於修改

  • 程式碼位置

    倉庫外 - 工作區(Working Directory) - 暫存區(stage) - 版本庫(Repository) - 遠端庫(origin)
    在這裡插入圖片描述

  • 缺點

    • 只能跟蹤管理文字檔案
  • 指標 - (HEAD -> master -> a commit)

    HEAD - 當前的commit版本

    HEAD^ - 前一個commit版本

    HEAD^^ - 前兩個commit版本

    HEAD~n - 前ncommit版本

  • .git

    - 用來管理 git 的目錄, 預設隱藏, 用ls -ah命令可以看見

  • origin - 遠端庫的預設名字

命令

命令命令作用引數引數作用
add把檔案放到Git倉庫/暫存區<file>要提交的檔案及路徑
commit提交修改到本地的Git 倉庫-m <mesage>提交的描述
init初始化目錄為Git倉庫
status檢視工作區暫存區的檔案更改狀態
diff檢視工作區檔案的修改``<HEAD~n/commitId> – | 檢視工作區版本庫`裡檔案的區別
log顯示從近到遠的commit記錄--pretty=oneline縮減log資訊到一行
--graph顯示分支圖
--abbrev-commit顯示短commitId
reset回退commit--hard
<HEAD~n/commitId>回退版本到某個commit之前
<file>把暫存區的修改回退到工作區
reflog檢視產生修改的命令歷史(不包括修改暫存區的)
checkout檢出-- <file>根據版本庫(commit)恢復工作區
<branch-name>切換到已有分支
-b <branch-name>建立並切換到(和當前分支一樣的)新的分支
-b <branch> origin/<遠端分支名>將遠端分支建立到本地
switch切換分支<branch-name>切換到已有分支
-c <branch-name>建立並切換到(和當前分支一樣的)新的分支
branch分支操作檢視所有分支以及當前分支
<branch-name>建立(和當前分支一樣的)新分支(不切換)
-d/-D <branch-name>刪除(已合併/未合併)分支
--set-upstream-to=origin/遠端分支名 本地分支名指定本地分支遠端分支的連線,可以簡化命令
merge合併分支<branch-name>合併某分支到當前分支
--no-ff -m "comment of merge commit <branch-name>"強制禁用Fast forward模式,使用一個新的 commit提交合並,保留合併歷史
rm從版本庫刪除檔案<file>從版本庫中刪除檔案
remote遠端庫操作檢視遠端庫名稱
-v檢視遠端庫資訊
add <遠端庫名> 遠端庫[SSH/HTTP]地址本地倉庫新增關聯的遠端倉庫
rm <遠端庫名字>刪除已有的遠端庫
push把分支推送到遠端庫origin <要推送的本地分支名>選擇要推送的分支
-u把推送的本地分支與遠端庫中對應的分支關聯起來,在以後push/pull時簡化命令,直接用git push/pull,省略origin <branchname>
origin <tag-name>推送某個標籤到遠端庫
origin --tags推送所有標籤到遠端庫
origin :refs/tags/<tag-name>刪除遠端標籤(已刪除本地標籤)
clone把遠端庫拷貝到本地git[SSH/HTTP]地址遠端庫地址,(github/gitlab會提供)
stash把當前工作區的修改暫時"儲藏"起來,以清空工作區
list檢視所有的stash
apply [[email protected]{0}]恢復但不刪除stash,(可指定版本)
drop [[email protected]{0}]刪除stash,(可指定版本)
pop [[email protected]{0}]恢復並刪除stash,(可指定版本)
cherry-pick把某個分支某次提交的修改應用到當前分支<commitId>應用commitId對應的commit
rebase在一個分支的commit末尾commit另一個分支
tagcommit的標籤,別名,標籤可以跟隨commit出現多次檢視所有tag,結果不是按時間順序而是按字母順序
<tag-name>給當前分支最新提交的commit打上標籤
<tag-name> <commitId>給某次commit打標籤
-a <tag-name> -m "comment message"給某次commit打帶有說明的標籤
-d <tag-name>刪除一個標籤
show檢視標籤資訊檢視當前commit資訊
<tag-name>檢視某個tag對應commit的資訊
config配置git倉庫--global為電腦的所有倉庫進行配置
color.ui truegit顯示顏色
user.name "username"設定Git倉庫的使用者名稱
user.email "email"設定Git倉庫的郵箱
alias.別名 全稱為命令配置別名

場景

提交一個檔案

git add readme.txt
geit commit -m "can't ignore this commit"

遇到衝突

先把有衝突的分支pull下來,在本地解決衝突然後再push

優化配置

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1'
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
cat .git/config 

安裝 & 配置 & 使用(mac)

本地使用

  1. 安裝

    • 通過 homebrew
    • 從AppStore安裝Xcode -> 執行Xcode -> Xcode -> Preferences -> Downloads -> Command Line Tools -> Install
  2. 配置

    [ - - global ] 意思是為這臺電腦的所有使用者設定

    git config --global user.name "Your Name"
    git config --global user.email "[email protected]"
    
  3. 初始化一個 git 目錄

    git init
    

連線遠端庫

  1. 建立SSH Key, 一臺電腦對應一個ssh key

    檢查使用者主目錄下有沒有.ssh目錄,.ssh裡有沒有id_rsaid_rsa.pub兩個檔案,如果沒有,執行以下命令

    ssh-keygen -t rsa -C "[email protected]"
    
  2. 遠端Git倉庫裡配置上一步得到的祕鑰id_rsa.pub

  3. 遠端Git倉庫中建立需要的倉庫

  4. 開始

    • 本地倉庫新增關聯的遠端倉庫

      git remote add origin git[SSH/HTTP]地址
      
    • 遠端倉庫拷貝倉庫到本地

      git clone git[SSH/HTTP]地址
      

相關連結