Git

參考資料

Learn-Git-in-30-days:
https://github.com/doggy8088/Learn-Git-in-30-days/blob/master/zh-tw/24.md

GIT新手入門教學
https://hellolynn.hpd.io/2017/01/18/git%E6%96%B0%E6%89%8B%E5%85%A5%E9%96%80%E6%95%99%E5%AD%B8-part-2/

初次設定Git

不是每種檔案版本控制都適合使用 GIT (e.g. 簡報製作)

空的資料夾無法被 git 感應到,慣例上會在資料夾內加入 .keep 或 .gitkeep 檔案

$ which git 確認此工具 $ git log --oneline Simplify git log, make log easily to read. $ git blame <filename> 查找每一行程式碼是誰寫的 $ git commit --amend 進入編輯器修改 commit 的訊息 $ git reset ORIG_HEAD --hard 可回復到 rebase 前的狀態

  • rebase interactively 可以修改歷史,也可能改爛專案

指令筆記:

  • 設定使用者 git config --global user.name "username"
  • 設定email git config --global user.email "[email protected]"

  • 確認設定值,可使用 git config --list 命令列出所有Git能找到的設定值

  • 初始化資料夾,加入 git 版本控制監視:
    git init

  • 開新的分支
    git branch 分支名字

  • 檢查狀態
    git status

  • 加入檔案到stage

    • 好用的互動模式:git add -i

    • 加入全部:
      git add .

  • 加入特定檔案
    git add file

  • 遞交變更(存擋)
    git commit -m "message"

  • 復原、撤銷修改:取消對文件的修改。還原到最近的版本,放棄本地做的修改。尚未add:
    git checkout <file> 把檔案救回來 git checkout . 救回當下資料夾內所有檔案 (透過 checkout 到版本編號指令也可以回到過去或任何版本)

    git reset HEAD <file>  # 還原 "指定" 的檔案狀態(工作狀態)
    git reset HEAD  # 還原 "全部" 的檔案狀態
    
  • 只要有狀態點的編號(SHA-1 number) 即可利用 reset <SHA-1> --hard 回到那個點

  • 移出 stage 狀態:撤銷先前"git add"的操作
    git reset HEAD <file>

  • 把檔案從Repository中幹掉(解除 staged 狀態、變為 untracked)
    git rm –cached <file>

  • 回退所有內容到上一個版本 (預設 --mixed 模式,檔案丟到工作區 untracked 狀態) git reset HEAD^

    git reset HEAD^^ 倒退兩步 git reset HEAD~10 倒退10個版本

  • 將本地的狀態回退到和遠程的一樣
    git reset -hard origin/master

  • 移除 git 管理:刪除目錄下隱藏的 .git 資料夾
    find ./ -name .git -exec rm -rf {} \;

建立 Github 資料庫:

本節指令
git remote
git remote -v
git remote add origin
git remote rm origin # 刪除節點
git remote set-url --add origin
git push
git push -u 
(參數 -u 等同於 --set-upstream,
設定 upstream 可以使分支開始追蹤指定的遠端分支)
git push --all
git push --tags
git branch --unset-upstream master  # 可以不用先切換到 master 分支
(取消追蹤遠端分支)
git branch -a # 查看所有分支
  • 開一個同名的無狀態 repository

    • 不要勾選建立 README

    • 不要加入任何檔案

    • 在 code 標籤頁內 複製網址(https or ssh)

  • 在本地位置輸入 git remote add origin '複製的網址'

git push origin 將當前分支推送到 origin 主機的對應分支

  • git push -u origin master

    此命令將本地的 master 分支推送到 origin 主機,同時指定 origin 為預設主機,以後就可以不加任何參數使用 `git push` 了

    這段指令的原型為: git push origin master:master

    push 本地 master 到遠端 master

所以如果要刪除遠端 cat 分支: git push origin :cat

  • 由於這是一個 「沒有版本」的空白 Git 儲存庫,在 GitHub 上的遠端儲存庫是完全空的,連預設的master分支都沒有,所以在下達git push指令時必須加上-u參數,才能成功地把本地儲存庫上傳到 GitHub 上的遠端儲存庫

  • 以後的版本更新只需要 git push 即可(預設只會推送當前的分支)

results matching ""

    No results matching ""