Git使用總結

Git使用總結

一 前言

本文是參考和學習了網上資料之後的總結,不當之處希望大家及時指正。

1、 Git教程

2、 Git官方文檔

二 安裝Git

1、 Linux

CentOS
yum install git
Ubuntu
apt-get install git

2、 Mac OS

兩種方法:

  1. 安裝homebrew,然後通過homebrew安裝Git,具體方法請參考homebrew的文檔:http://brew.sh/

  2. 從AppStore安裝Xcode,Xcode集成了Git,不過默認沒有安裝,你需要運行Xcode。
    選擇菜單“Xcode”->“Preferences”,在彈出窗口中找到“Downloads”,
    選擇“Command Line Tools”,點“Install”就可以完成安裝了。

3、 Windows

下載安裝git shell,或者github客戶端。

設置用戶名和郵箱:

git config --global user.name "you_name"  #設置全局用戶名
git config --global user.email "[email protected]"  #設置全局郵箱

三、 Git使用

1、 創建本地倉庫

初始化所在目錄爲本地Git倉庫,該目錄可以不爲空(建議使用空目錄)。

git init

2、 添加文件到本地倉庫(倉庫即版本庫)

這裏寫圖片描述

git add file [file1 file2 ...] # 添加文件file到暫存區stage
git add -f file [file1 file2 ...] #  強制添加file到stage(可用於添加忽略文件)

git commit -m "操作說明" # 把stage中的內容提交到倉庫

可以多次add,一次commit,此時所有的add的說明是一樣的。
可以一次add,一次commit,此時每個add都有自己的說明。

3、 時光穿梭機

  • 查看狀態
 git status # 查看倉庫當前狀態
  • 查看差異
 git diff [file] # 查看工作區和暫存區中[file]的差異
 git diff --cached [file] # 查看暫存區和倉庫中[file文件]的差異
 git diff HEAD -- [file] # 查看工作區和倉庫中[file]的差異
  • 查看歷史
git log # 查看commit歷史信息
git log -1 # 查看最後一次commit信息
git log --pretty=oneline # 單行模式顯示
        --graph  # 用圖形顯示分支合併歷史
        --abbrev-commit # 簡寫commit_id
git reflog # 查看所有操作記錄,包括回退,刪除
  • 版本切換
git reset --hard HEAD^    # 回到上一版本
git reset --hard HEAD^^   # 回到上上版本
git reset --hard commit_id  # 切換到commit_id(可以是簡寫的)指定的版本。
  • 撤銷修改
git checkout -- [file]   # 撤銷對工作區的修改(沒有執行add時)
git reset HEAD [file]    # 撤銷對暫存區的修改(執行add,但沒執行commit時)

執行了commit,可以先使用上一步的版本回退。

  • 刪除文件

    • shell命令刪除工作區文件,然後提交

      rm file
      git add file
      git commit -m "說明"

    • git命令刪除工作區和暫存區文件,然後提交

      git rm file
      git commit -m "說明"

4、 遠程倉庫

  • 在本地創建SSH Key
ssh-keygen -t rsa -C "[email protected]"

 Linux下默認生成的 id_rsa 和 id_ras.pub 文件在 ~/.ssh/ 目錄下。
 把 id_ras.pub 文件中的內容複製到,並添加到遠程倉庫(Git服務器)中,進行用戶註冊。

  • 添加遠程倉庫
git remote add origin git@git-server-name:path/repo-name.git # 添加遠程庫
git remote # 查看遠程庫
git remote -v # 顯示遠程庫詳細信息

git remote add 的origin,是給遠程倉庫起的名字,可任寫。

  • 推送並關聯遠程庫
git push -u origin master # 把本地倉庫的分支推送並關聯到遠程倉庫

其中,origin是添加遠程倉庫時指定的名字,與git remote add時一致。
master是分支名稱,master是主分支。
* 除第一次關聯外,之後push不需要 -u 選項 *
* 添加遠程倉庫後,第一次執行clone或者push時有報警信息,是提醒添加了一條對SSH信任的信息,請你確認是否有誤 *

  • 從遠處倉庫克隆
git clone git@git-server-name:your-path/repo-name.git  ## 克隆遠程倉庫到本地當前目錄
git pull # 拉取遠程庫內容到當前git倉庫目錄

5、 分支管理

git branch branch-name  ## 創建分支branch-name
git checkout branch-name  ## 切換到分支branch-name
git checkout -b branch-name ## 創建並切換到branch-name
git branch  ## 查看所有分支
git branch -d branch-name ## 刪除分支branch-name
git branch --set-upstream branch-local branch-remote  ##關聯本地branch-local到遠程倉庫branch-remote
git merge branch-name  ## 合併分支branch-name
git merge branch-name --no-ff  ## 禁用Fast-forward快速合併
git merge --no-ff -m "說明" branch-name  ## 合併分支並添加說明
git stash  ## 保存當前工作現場
git stash list   ## 查看保存的列表
git stash apply  ## 恢復stash中保存的工作現場
git stash pop   ## 恢復並刪除stash
git stash drop  ## 刪除stash
git branch -D branch-name  ## 強制刪除分支(用於刪除未合併的分支)

git merge 使用–no-ff 選項,刪除分支後,可以記錄分支合併的歷史。

  • 分支管理策略

    分支管理策略

    如上圖,
    ① 一般主分支master用來發布版本,保證master分支非常穩定。
    ② dev分支用來進行開發,不斷迭代,保證可以編譯通過。
    ③ 每個人都有自己的分支,用來保存自己工作,保證自己代碼不丟失,同時也保證了dev分支能正常編譯,不影響其他開發者工作。

  • Bug分支

    先保存自己的工作區現場,然後從需要修復bug的分支(如master)建立一個自己的分支,進行bug修改,修改完後合併到master,最後恢復自己的工作區,繼續工作。

  • Feture分支

    與Bug分支類似。添加新功能時,新建分支,完成新功能的添加。

  • 多人協作

    先從dev分支上pull拉取最新代碼,有衝突先解決衝突,最後再合併push到遠程倉庫。

6、 標籤管理

打標籤,可以記錄每次發佈版本對應的代碼的位置。

git tag  ## 查看現有標籤
git tag v1.0  ## 給當前分支最新commit打標籤
git tag v0.9 commit_id ## 給指定的commit_id打標籤
git tag -a v0.1 -m "標籤說明" commit_id  ## 給標籤添加說明
git tag -s v0.1 -m "標籤說明" commit_id  ## 用gpg私鑰給標籤簽名
git tag -d v0.1  ## 刪除標籤v1.0
git show v0.2   ## 顯示標籤v0.2的信息
git push origin v1.0  ## 推送標籤v1.0到遠程倉庫origin
git push origin --tags  ## 推送所有未推送的標籤到遠程庫origin
git push origin :refs/tags/v1.0  ## 刪除遠程倉庫中的標籤v1.0(先刪除本地,再使用該命令刪除)

7、 使用GitHub

GitHub開源協作社區, 世界級公用Git服務器。

  • fork 已有項目,生成自己的分支;
  • clone 在本地clone自己分支上的代碼,進行修改;
  • pull request,修改完後commit,push到自己的分支,然後pull request 到源項目中,等待源項目作者合併到項目或者關閉。如果原作者是自己,則自己決定是否合併。

8、 自定義Git

  • 設置配置參數
git config --list  ## 查看git全局配置參數
git config --global user.name "you_name"  #設置全局用戶名
git config --global user.email "[email protected]"  #設置全局郵箱
git config --global color.ui true  #設置全局顏色顯示
git config --global alias.<alias_name> <'command_name'>  #設置別名
  • 忽略特殊文件
    在當前Git工作區目錄創建 .gitignore 文件,
    內容舉例,如下:
    #Windows:
    Thumbs.db
    ehthumbs.db
    Desktop.ini

    #Python:
    *.py[cod]
    *.so
    *.egg
    *.egg-info
    dist
    build
    #My configurations:
    db.ini
    deploy_key_rsa

有文件file不能add,被Git服務器忽略時,查看忽略該文件的規則:

git check-ignore -v <file>  #查看忽略該文件的規則

可以使用 git add -f 選項進行強制添加。

  • 配置別名列表
git config --global alias.confg 'config --global'
git confg alias.st status
git confg alias.co checkout
git confg alias.ci commit
git confg alias.br branch
git confg alias.unstage 'reset HEAD'
git confg alias.last 'log -1'
git confg alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %

Completed!
請開始你的表演!!~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章