Mars's Blog

Git安裝

一、說明

版本控制在軟體開發中非常重要,有了版本控制不但可以記錄軟體變動脈絡,還能多線開發、合併、摘取、回遡、差異比對等功能,在團隊合作中尤其重要。

二、安裝

2.1 Windows

  • 下載並安裝 Git

    基本上一直按「下一步」到底就可以了

  • 下載Git GUI管理軟體 TortoiseGit

    下載主程式和語言包 (建議不裝中文,看習慣英文)

    基本上設定個人資訊前一直按「下一步」就可以了

2.2 Linux(Ubuntu16.04TLS)

  • Git安裝

    Ubuntu16.04TLS預設安裝的git版本太舊,需使用其他套件源

    • 安裝Git套件源

      1
      2
      $ sudo add-apt-repository ppa:git-core/ppa;
      $ sudo apt-get update;
    • 安裝/更新Git

      1
      $ sudo apt-get install git;
    • 查看Git版本

      1
      2
      $ git --version
      git version 2.22.0
  • 語系設定

    1
    2
    3
    4
    $ echo "export LESSCHARSET=utf-8;" | sudo tee -a ~/.bashrc
    $ echo "export LESSCHARSET=utf-8;" | sudo tee -a /etc/bash.bashrc
    $ echo "export LC_ALL=en_US.UTF-8;" | sudo tee -a ~/.bashrc
    $ echo "export LC_ALL=en_US.UTF-8;" | sudo tee -a /etc/bash.bashrc

    原因是 git log 預設是使用 less 這個工具來瀏覽,所以需要額外設定編碼。

  • Git參數設定

    1
    2
    3
    4
    5
    # 編輯git時使用vim編輯器
    $ git config --global core.editor vim
    # 設定Git操作者的名子與信箱
    $ git config --global user.name {我的名子}
    $ git config --global user.email {我的信箱}
    • **{我的名子}{我的信箱}**替換成自己的英文名子和電子信箱

三、常用指令

  • 下載repository: git clone <repo> (repo格式:git@xxx.xx:xxx/xxx.git)
  • 查看記錄: git log
  • 查看歷史記錄: git reflog

    如果誤操作時,可用此找查之前的記錄

  • 查看目前變動: git status
  • 收藏變動: git stash
  • 取出收藏: git stash pop
  • 暫存變動: git add <file>
  • 暫存全部變動: git add -u

    不含未處理過的檔案

  • 暫存全部變動: git add .

    含未處理過的檔案

  • 暫存路徑變動: git add <dir>

    含未處理過的檔案

  • 取消暫存變動: git reset HEAD <file>

    取消不小心 git add 的檔案

  • 提交: git commit
  • 推送至遠端: git push

    強制推送: git push -f

  • 獲取遠端記錄: git fetch
  • 獲取並合併: git pull <branch>
  • 合併分支: git merge <commit>
  • 變基: git rebase -i <commit>
  • 切換分支: git checkout <branch>
  • 清除變動檔案: git checkout <file>
  • 清除分支所有變動: git checkout -- .
  • 變更工作目錄至commit: git reset <commit>

    只移動branch位置,不變動檔案

  • 變更工作目錄至commit: git reset --hard <commit>

    移動branch位置,並重置檔案

  • 建立新分支: git branch
  • 建立tag: git tag <tag>
  • 推送tag: git push origin <tag>

    同等: git push origin refs/tags/<tag>

  • 刪除tag: git tag -d <tag>
  • 刪除遠端tag: git push origin refs/tags/<tag>

    必需先把本地tag刪除(推送空tag)

四、參考