git 簡易備忘錄
status
看現在是啥狀況,可 -s
看精簡版add
多用途:- 「開始追蹤」檔案 (就不再是untracted)
- 「預存」檔案 ( 變成 staged,也就是預備下次commit就會交出去 )( 其實在這步驟會算出檔案內容的雜湊值,會存在.git裡面的我不知道具體位置的 staging area )
- 可用
-A
一次添加全部,小寫不能喔 - 以及做一些其它的事,像是「標記合併衝突(merge-conflicted)檔案為已解決」
.gitignore
針對你永遠不想追蹤的東西可以新建這玩意 ( 不然一直出現在 untracted 看了也煩 )diff
不帶參數就是檢查 directory 跟 staged 區的差別 ( 所以你已經 add 了就看不到差異 ),用 --stage
可以看 staged 跟 last commit 的差別difftool
可以外掛一些可視化較強的工具,用 git difftool --tool-help
來搞搞看commit
把 staged 好的東西提交囉,若你想把下面註解著的狀態內容也放進提交文件的話可以 -v
,若懶得跳編輯器可以直接 -m '提交註解'
若剛剛提交稍有出錯可用 --amend
來覆蓋錯的。重點來了,如果你根本不想精確控制每次要提交的內容,那麼可以 git commit -a -m 'pass step add'
,這樣就會把 tracted 的所有 modified 的內容自己 add 以後幫你提交log
查看歷史提交紀錄 -p
看修改內容 -2
限制只輸出最後兩筆 --graph
圖形化,要好看的話可以 git log --pretty=oneline --graph
,可用 --decorate
查看分支指標,後來發現若要看到其他分支的歷史要加 --all
。另有很多變形技巧且看 https://git-scm.com/book/zh-tw/v2/Git-基礎-檢視提交的歷史記錄reset
可以把不小心放到 stage 的移出branch
創建分支,如 git brach beta
此時你就有本來的 master 跟現在的 beta 兩個都會指向最後的提交,而此時 HEAD 應該還是指向 master ( 表示我目前還在 master 上工作 ),透過 -v
來看每個分支的最後一次提交,加上 --merged
或 --no-merged
來看哪些融合了哪些還沒checkout
來把 HEAD 指標指向別的分支如 git checkout beta
此時你看 git log --oneline --graph --decorate
就會發現 HEAD 指向 beta 了,而若 master 跟 beta 已經指向不同的快照了 ( 不同版本 ),那麼你 checkout 來切換時,工作目錄也會切換成不同的版本喔
再快一點:可以
git checkout -b beta
就不用先創立 branch 了!merge
焦點在master上,此時 git merge hotfix
則把 hotfix 這個分支的修正事項都融進 master 裡,此時 master 就被 fast-forward 到跟 hotfix 指向同一個版本,此時可以透過 git branch -d hotfix
來把 hotfix 刪除rebase
焦點在bug上,此時 git rebase master
,bug版本就變成master的下個版本了(把分支放進主幹,變簡潔好看)。更快點: git rebase master bug
(把 bug 接種到 master 上)這樣就不用先切焦點了。注意:git book 提醒「总的原则是,只对尚未推送或分享给别人的本地修改执行变基操作清理历史,从不对已推送至别处的提交执行变基操作。」因為 rebase 就是修剪枝幹使其整潔,所以牽涉到歷史記錄的修改,你可以選擇修飾你自己的歷史(反正人本來就是不斷地欺騙自己),但不能任性地擺弄大家的。remote
來個遠端吧,用 git remote add '此遠端代稱' <url>
,然後把本地推到遠端 git push -u '代稱' master
話說 -u 就會把這個遠端追蹤起來之後就不用特別打 remote name 了
每次 push 都要打帳密太麻煩可以先
git config --global credential.helper store
然後執行 push 輸入,之後就都緩存不用重複了,可見 https://zlargon.gitbooks.io/git-tutorial/content/remote/upstream.htmlclone
把遠端的整個方案複製一份到本地
復原:
checkout
可以復原檔案到某次 commit 的樣子 git checkout —該commit雜湊值
也可以
git checkout -<file name>
就可以復原該檔案成「上次」commit 的內容
突然想回到過去創分支(我是真的突然想):
就用
git checkout -<file name>
飛過去,然後 git checkout -b branch_name
就可以囉
可見(裏頭的其他內容也都很不錯):https://gitbook.tw/chapters/branch/branch-from-old-commit.html
留言
張貼留言
歡迎討論