這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
git_description [2024/04/02 14:07] don [Git reflog] |
git_description [2024/04/02 14:19] (目前版本) don [Git remote] |
||
---|---|---|---|
行 13: | 行 13: | ||
{{: | {{: | ||
- | Git 是分散式的版本控制系統, | + | Git 是分散式的版本控制系統, |
- | 你有兩種主要方法來取得一個 Git 倉儲。 | + | 你有兩種主要方法來取得一個 Git 倉儲。 |
- | 第一種是將現有的專案或者資料夾匯入 Git; | + | 第一種是將現有的專案或者資料夾匯入 Git;\\ |
第二種是從其它伺服器克隆(clone)一份現有的 Git 倉儲。 | 第二種是從其它伺服器克隆(clone)一份現有的 Git 倉儲。 | ||
===== Git clone ===== | ===== Git clone ===== | ||
- | Git clone 取得現有 Git repository 副本 | + | Git clone 取得現有 Git repository 副本。\\ |
- | Git 並不僅只是取得專案最新的內容,而是把遠端倉儲內幾乎所有的資料都抓回來了。 | + | Git 並不僅只是取得專案最新的內容,而是把遠端倉儲內幾乎所有的資料都抓回來了。 |
- | 專案歷史紀錄中,每個檔案的每個版本預設都會在你執行 git clone 時被拉取(pull)回來。 | + | 專案歷史紀錄中,每個檔案的每個版本預設都會在你執行 git clone 時被拉取(pull)回來。\\ |
- | 注意現在這個命令是克隆(clone),而非取出(checkout)。 這是 Git 和其他版本控制系統的重要差異 | + | 注意現在這個命令是克隆(clone),而非取出(checkout)。 |
+ | 這是 Git 和其他版本控制系統的重要差異。 \\ | ||
< | < | ||
- | 這指令將會建立名為「libgit2」的資料夾,並在這個資料夾下初始化一個 .git 資料夾,從遠端倉儲拉取所有資料,並且取出(checkout)專案中最新的版本。 | + | 這指令將會建立名為「libgit2」的資料夾,並在這個資料夾下初始化一個 .git 資料夾,從遠端倉儲拉取所有資料,並且取出(checkout)專案中最新的版本。\\ |
< | < | ||
行 32: | 行 33: | ||
===== Git submodule ===== | ===== Git submodule ===== | ||
- | Git submodule | + | Git submodule |
< | < | ||
git submodule add < | git submodule add < | ||
行 58: | 行 59: | ||
===== Git add ===== | ===== Git add ===== | ||
- | Git add 新增檔案 | + | Git add 新增檔案。 |
< | < | ||
• git add . # 將資料先暫存到 staging area, add 之後再新增的資料, | • git add . # 將資料先暫存到 staging area, add 之後再新增的資料, | ||
行 70: | 行 71: | ||
===== Git rm ===== | ===== Git rm ===== | ||
- | Git rm 刪除檔案 | + | Git rm 刪除檔案。 |
< | < | ||
===== Git mv ===== | ===== Git mv ===== | ||
- | Git mv 修改檔名、搬移目錄 | + | Git mv 修改檔名、搬移目錄。 |
< | < | ||
===== Git clean ===== | ===== Git clean ===== | ||
- | Git clean 砍掉 untracked 檔案\\ | + | Git clean 砍掉 untracked 檔案。 |
< | < | ||
git clean -n # 列出打算要清除的檔案 | git clean -n # 列出打算要清除的檔案 | ||
行 88: | 行 89: | ||
===== Git status ===== | ===== Git status ===== | ||
- | Git status 看目前的狀態 | + | Git status 看目前的狀態。 |
< | < | ||
git status # 看目前檔案的狀態 | git status # 看目前檔案的狀態 | ||
行 94: | 行 95: | ||
</ | </ | ||
===== Git commit ===== | ===== Git commit ===== | ||
- | Git commit | + | Git commit |
< | < | ||
git commit | git commit | ||
行 104: | 行 105: | ||
===== Git branch ===== | ===== Git branch ===== | ||
- | Git branch 產生新的 branch | + | Git branch 產生新的 branch。 |
< | < | ||
git branch # 列出目前有多少 branch | git branch # 列出目前有多少 branch | ||
行 121: | 行 122: | ||
===== Git checkout ===== | ===== Git checkout ===== | ||
- | Git checkout 切換 branch | + | Git checkout 切換 branch。 |
< | < | ||
• git checkout branch-name # 切換到 branch-name | • git checkout branch-name # 切換到 branch-name | ||
行 137: | 行 138: | ||
===== Git diff ===== | ===== Git diff ===== | ||
- | Git diff | + | Git diff 在 Git 中比對兩個版本之間的差異。 |
< | < | ||
git diff master # 與 Master 有哪些資料不同 | git diff master # 與 Master 有哪些資料不同 | ||
行 159: | 行 160: | ||
===== Git cherry-pick ===== | ===== Git cherry-pick ===== | ||
- | Git cherry-pick | + | Git cherry-pick |
< | < | ||
git cherry-pick < | git cherry-pick < | ||
行 168: | 行 169: | ||
===== Git tag ===== | ===== Git tag ===== | ||
- | Git tag | + | Git tag 列出 Git 中所有標籤。 |
< | < | ||
git tag v1 ebff # log 是 commit ebff810c461ad1924fc422fd1d01db23d858773b 的內容, 設定簡短好記得 Tag: v1 | git tag v1 ebff # log 是 commit ebff810c461ad1924fc422fd1d01db23d858773b 的內容, 設定簡短好記得 Tag: v1 | ||
行 176: | 行 177: | ||
===== Git log ===== | ===== Git log ===== | ||
- | Git log 命令只能查看以當前狀態為終點的歷史日誌 | + | Git log 命令只能查看以當前狀態為終點的歷史日誌。 |
< | < | ||
• git log # 將所有 log 秀出 | • git log # 將所有 log 秀出 | ||
行 356: | 行 357: | ||
• git branch -r # 列出所有 Repository branch | • git branch -r # 列出所有 Repository branch | ||
- | $git remote | + | git remote |
origin | origin | ||
- | $ git remote -v | + | git remote -v |
origin https:// | origin https:// | ||
origin https:// | origin https:// | ||
- | $git fetch origin | + | git fetch origin |
- | $git push origin | + | git push origin |
</ | </ | ||