Git command list
Git 基本知識
由 project/.git/config 可知: (若有更多, 亦可由此得知)
origin(remote) 是 Repository 的版本
master(branch) 是 local 端, 正在修改的版本
平常沒事不要去動到 origin, 如果動到, 可用 git reset --hard 回覆到沒修改的狀態.
我會用的 git command
1. git tag
git tag → 列出既有 tag
git tag -l "XX.*" → 搜尋XX.*
How to: Delete a remote Git tag
tag named '12345'
git tag -d 12345
git push origin :refs/tags/12345
2. git reset
由 project/.git/config 可知: (若有更多, 亦可由此得知)
origin(remote) 是 Repository 的版本
master(branch) 是 local 端, 正在修改的版本
平常沒事不要去動到 origin, 如果動到, 可用 git reset --hard 回覆到沒修改的狀態.
我會用的 git command
1. git tag
git tag → 列出既有 tag
git tag -l "XX.*" → 搜尋XX.*
How to: Delete a remote Git tag
tag named '12345'
git tag -d 12345
git push origin :refs/tags/12345
git reset xxxx --hard → 強制恢復到某一版本
git reset --soft HEAD^ → 執行 git commit,發現訊息寫錯想要修改,可以使用。
git reset --soft HEAD^ → 執行 git commit,發現訊息寫錯想要修改,可以使用。
會刪掉 commit,在執行一次 commit 就可。
3. git branch & git checkout
6. git blame
git blame 是一個看誰在哪一版修改了什麼的工具。
git blame hello.c
3. git branch & git checkout
local 端產生新的 branch
git branch → 列出目前有多少 branch
git branch -r → 列出所有 Repository branch
git branch -a → 列出所有 branch
git branch new-branch → 產生新的 branch (名稱: new-branch), 若沒有特別指定,
會由目前所在的 branch / master 直接複製一份
會由目前所在的 branch / master 直接複製一份
git branch new-branch master → 由 master 產生新的 branch(new-branch)
git branch new-branch v1 → 由 tag(v1) 產生新的 branch(new-branch)
git branch -d new-branch → 刪除 new-branch
git branch -D new-branch → 強制刪除 new-branch
git checkout -b new-branch → 產生新的 branch, 並同時切換過去 new-branch
local 端切換 branch
git checkout branch-name → 切換到 branch-name
git checkout -b new-branch test → 產生新的 branch, 並同時切換過去 new-branch
git checkout filename → 還原檔案到 Repository 狀態
git checkout HEAD → 將所有檔案都還原到上一版(最後一次 commit 的版本).
(git checkout -f 亦可)
(git checkout -f 亦可)
git checkout xxxx → 將所有檔案都還原到 xxxx commit 的版本
git checkout -- * → 恢復到上一次 Commit 的狀態
(* 改成檔名, 就可以只恢復那個檔案)
(* 改成檔名, 就可以只恢復那個檔案)
如何在 remote site 增加/移除一個 branch
git push origin origin:refs/heads/branch_name
→ 如果 branch _name 不存在的話
git push origin local_branch_name:remote_branch_name
→ 如果 branch 已經在 local 了,只是要推上去
or
git push origin HEAD → 如果 branch 已經在 local 了,只是要推上去
如何移除 remote site 的 branch
git push origin :heads/branch_name
→ branch_name 是你想要移除的 remote branch 名稱
開始追蹤 remote branch (當你下一次 pull時, 你會對那個新的 branch_name做 sync)
git checkout --track -b branch_name origin/branch_name
4. git commit
git commit -m "註解" -a
git commit -F commit.txt -a
5. git pull & push
git push origin master --tags
→ master 是你想要推上的 branch, --tags 若有 tag 一起推上.
git pull origin master
→ master 是你想要 sync 的 branch.
git blame
git blame hello.c
7. git rm filename → 刪除檔案
8. git cherry-pick xxxx → 從別的 branch 合併某個 commit
git cherry-pick B..D → cherry pick 範圍, 不包含B
git cherry-pick B..D → cherry pick 範圍, 不包含B
git cherry-pick B^..D → cherry pick 範圍, 包含B
留言
張貼留言