教材

本文主要參考

比較兩文件

  • fc <file_1><file_2> // windows
  • diff -u <file_1><file_2> // Mac OS or Linux

儲存檔案的時機與大小

  • 每次進行邏輯更改時儲存檔案(建議手動非自動)

版本控制系統:CVS v.s. SVN

概念圖

  • (完整版可參考第三章)

同時提交多個git文件

  • repository(儲藏庫):放置git文件的倉庫
  • git log --stat // 顯示統計數據(如幾個檔案變更,新增多少內容)
    • 在此模式下,可以按Q停止查看輸出

設置(教學中建議的)工作環境(Windows)

  • 瀏覽器會預設儲存成txt,這點要特別注意
  • 可用mv git-completion.bash.txt git-completion.bash
  • git config --global core.editor "'<text_editor_path>' -n -w" // 設定預設編輯器
    • -n在新視窗中開啟
    • -w 關閉文字編輯器後再繼續
    • 不明原因設置失敗,論壇上有人有相同問題
  • git config --global push.default upstream // 建議用法,未解釋
  • git config --global merge.conflictstyle diff3 // 建議用法,未解釋

常用指令整理

  • git commit 提交
  • git log 顯示所有commit內容(歷史紀錄)
  • git diff <commit id_1> <commit id_2> 類似於fc或diff
  • git --version 可查看git的版本
  • git help <command> 有問題時可用此指令獲得幫助(如:git help diff)
  • git clone <repository_url> 複製repository到當前資料夾
  • git config --global color.ui auto 獲得彩色的輸出
  • git checkout <commit id> 恢復到之前的版本
    • (註:不等於svn checkout)
    • 註:若用git checkout還原到舊版本,則用git log輸出歷史紀錄時會發現最新的commit是剛剛還原的版本,但這會有’detached HEAD'的問題
    • "好像"可以不用打完整的commit id,可以只打最前面的部分即可
    • (更新:至少要打前四碼,前提:前面部分commit id沒有衝突)
    • 如:完整的id為7c81b8021ec16c5c7b240220314d01200957d605,可以只打7c81b8
  • ls -a 顯示隱藏檔 (以".”開頭的檔案)
  • mv <file_initial_location> <file_destination_file> 移動檔案或重新命名
  • history 可用來查看輸入過的指令

    git bash 執行緩慢問題

Git/Bash is extremely slow in Windows 7 x64 - Stack Overflow 測試過,重開機後已解決效能差的問題

Git 錯誤和警告解決方案

  1. Should not be doing an octopus(不應執行 octopus)
    Octopus 是 Git 用來合併多個不同代碼版本的一種策略。如果在不合適的情況下嘗試使用該策略,則可能會出現此消息。

  2. You are in 'detached HEAD' state(你處於「分離的 HEAD」狀態)
    Git 將你目前所在的提交稱為 HEAD。可通過切換到前一個提交來「分離」HEAD,這在下一個影片中有說明。雖然此警告聽起來不太好,但分離 HEAD 實際上不是壞事。Git 只是向你發出警告,以便你知道自己正在這樣做。

  3. Panic! (the 'impossible' happened)((天哪!「不可能的事」發生了))
    這是真正的錯誤消息,但它不是由 Git 輸出的,而是由 GHC(編程語言 Haskell 的編譯器)輸出的。它僅在發生特別讓人驚訝的錯誤時才會出現!

  • 星號(*)代表有修改尚未儲存

results matching ""

    No results matching ""