Git經常使用命令

通常操做流程:工做區-(暫存區-本地庫)--拉取更新本地-推送到遠程庫git

一. 基本命令

  • git init 初始化一個Git倉庫github

  • git status 查看當前倉庫狀態bash

  • git log <具體id值/-1/–p> (-p具體修改了什麼內容) 查看日誌,以便肯定要回退到哪一個版本app

  • git reflog 查看命令歷史,以便肯定回到將來的哪一個版本fetch

二. 增刪改查

  • git add <文件/文件夾/.> (.表明添加全部文件) 添加到暫存區ui

  • git commit -m --amend追加修改 提交到本地庫spa

  • git rm <文件> 刪除文件日誌

  • git reset 版本回退code

//HEAD:指當前分支的最新提交點 
 //回退上一個版本
 git reset --hard HEAD^  
 //回退到指定版本
 git reset --hard <commit id版本號> 
複製代碼
  • git checkout -- 撤銷修改ip

    • 去掉"--"參數,則表明"切換分支"做用
    • 未add進暫存區時,直接撤銷.
    • add進暫存區,未commit到本地庫時,先取消添加( git reset HEAD ),再執行撤銷.
    • 即add進暫存區,又提交到了本地庫時,採用版本回退
  • git diff <文件> 查看修改內容

  • git diff HEAD -- <文件> 工做區和暫存區的比較

  • git diff HEAD --cached <文件> 暫存區和分支本地庫的比較

三. 分支管理

HEAD:指當前分支的最新提交點

  • git show <branch-name/tag-name> 查看對應信息
  • git branch 查看分支
  • git branch 建立bn分支
  • git branch –d 刪除bn分支
  • git branch –D 強制刪除bn分支(用於刪除一個沒有合併的分支)
  • git checkout 切換bn分支
    • git checkout -b 建立並切換分支
  • git merge 合併分支到當前分支
    • git merge --no-ff –m「merge branch」
      • "--no-ff"禁用快速模式,這樣分支歷史上能夠查看分支信息.
3.2 衝突標記方式

<<<<<< ======= >>>>>>>>

3.3 git flow 管理策略
  • master:穩定發佈版本分支
  • dev:開發分支
  • feature:新功能開發分支,開發完合併到dev分支.
  • hotfix:修復緊急bug分支,修復完合併到master和dev.

四. 標籤管理

與分支操做相似

  • git tag 查看全部標籤
  • git tag 新建標籤
    • 默認爲HEAD,也能夠指定一個commit id,如git tag
    • git tag -a -m "我是描述信息" 建立帶有說明的標籤
  • git push origin --tags 推送全部標籤
  • git tag -d 刪除本地標籤
  • git push origin :refs/tags/ 刪除遠程標籤.
    • tips:須要先刪除本地標籤

五. 遠程倉庫

5.1 倉庫相關
  • git remote –v 查看有哪些遠程倉庫
  • git clone <倉庫地址> 克隆某遠程倉庫

使用示例:

git clone git@github.com:jasonhww/test.git
複製代碼
  • git remote add <倉庫名> <倉庫地址> 本地倉庫關聯一個遠程倉庫

使用示例:

git remote add origin git@github.com: jasonhww /test.git

/*若是一個本地庫須要關聯多個遠程庫,那麼就用不一樣名稱標識不一樣遠程庫地址.
 *
 *推送的時候就用對應的倉庫名.
/

git remote add github git@github.com: jasonhww /test.git
git remote add  gitee git@gitee.com: jasonhww /test.git

git push github master
git push gitee master
複製代碼
  • git remote rm <倉庫名> 移除遠程倉庫關聯

使用示例:

git remote rm origin
複製代碼
5.2 分支相關
  • git push origin master 推送master分支到遠程庫

    • 第一次提交加上"-u"參數,不但推送本地分支而且還關聯遠程分支
  • git push origin dev 推送dev分支到遠程庫

  • git pull origin master 從遠程庫拉取master分支代碼,合併到本地

  • git fetch origin master 遠程庫上的master分支代碼拉取到本地,暫不合並(須要調用merge命令進行合併)

  • git checkout -b origin/ 在本地建立和遠程分支對應的分支

  • git branch --set-upstream origin/ 創建本地分支和遠程分支的關聯

5.3 Rebase
  • 優勢是本地未push的分叉提交歷史整理成直線
  • 缺點是本地的分叉提交已經被修改過了

六. 貯藏操做

  • git stash 藏匿 (當前分支全部沒有 commit 的代碼先暫存起來)
  • git stash list 查看藏匿記錄
  • git stash clear 清空全部藏匿記錄
  • git stash pop 還原並移除(等同如下兩個操做)
    1. git stash apply 還原藏匿部分
    2. git stash drop 移除最近一條藏匿記錄

七. 配置文件

配置文件爲位置:

  1. 全局配置文件:在用戶主目錄下的一個隱藏文件.gitconfig中.
  2. 倉庫的配置文件:在倉庫所在目錄的.git/config文件中.

配置郵箱語法

* --global user.name jasonhww
* --global user.email jasonhww@163.com
複製代碼

配置別名語法

  • --global alias.別名
git config --global alias.st status
git config --global alias.unstage 'reset HEAD'
複製代碼

八. 忽略文件

添加.gitignore文件到版本庫中.
github.com/github/giti…

九. 其餘

一個GitHub容許能夠添加多個Key, 可是一個key只能用於一個github帳號. 此時須要經過配置文件配置多SSH的KEY對應不一樣github帳號.

相關文章
相關標籤/搜索