先安裝本地數據庫 在終端機輸入
git init
▶ GIT 基礎指令
當你有檔案需要被Git備份起來時 輸入
git add .
將檔案提交到索引(staging area) 並使用
git status 查詢你上傳到索引的檔案
★ TIPS小幫手:
git add . 點則代表是所有檔案都提交
也可提交單一檔案 EX:
git add index.html
查看當前 git 遠端資料
vi .git/config
修改上一次提交資訊
git commit --amend [-m "xxx"]
可直接修改 如果沒有[-m "xxx"]
將會進入VIM修改提交資訊
修改歷史資訊
git rebase -i [提交流水碼前8位]
輸入進入 VIM 模式 將pick 改成 reword/r 然後退出選擇模式 (ESC + :wq)
就會進入該檔案 VIM 模式 修改commit 之後儲存退出 就完成修改了
當你做到一半時,如果有急件插入要修改 bug 卻又不想把未成品提交的時候可以將當前紀錄先隱藏起來
git stash當急件完成後 將藏起來的檔案給取出來
git stash pop
當你想查詢哪些人修改了這個檔案
git blame [檔案名稱]
▶Fast-forward 快轉模式
平常我們再合併分支的時候,會使用
git merge [分支名稱]
其實我們會注意到,下面會有一個 Fast-forward 快轉模式
而快轉模式會直接將合併分支的那條線,快速拉到你合併的那條上
即使你中間有三個版本差,也會直接併到同一個最新版本
但有時候你正式機上有出現bug時,你沒辦法第一時間知道這個新的版本合併了幾個
git merge [分支名稱] --no-ff
透過取消快轉模式,你會發現中間合併了哪些開發版本。
▶ Git log
git log --graph 查詢歷史紀錄並用簡單的圖形化顯示ㄈㄣgit log --oneline 提交紀錄用一行顯示 流水碼及提交資訊git log --all 顯示所有提交紀錄git log -p 查詢歷史提交紀錄差異可單用以外也可以合併再一起使用git log --graph --oneline --allgit reflog 可以查詢所有 git 指令得操作 如果不小心刪除了可以透過這個救回來
▶ 超級指令大全
➩ 基礎設定
查詢版本git version查詢設定列表git config — list設定姓名git config — global user.name “<你的名字>”設定emailgit config — global user.email “<你的email>”
↪ 新增本地/遠端數據庫
在本地資料夾新增數據庫git init複製遠端數據庫git clone <遠端數據庫網址>
↪ 增加/刪除檔案
增加檔案進入索引git add <檔案名稱>增加全部檔案進入索引git add .查詢狀態git status顯示歷史紀錄git log將索引提交到數據庫git commit -m ‘<更新訊息>’
➩ 還原指令
還原工作目錄與索引,會跟最後一次 commit 保持一樣git reset — hard全部檔案取消索引git reset HEAD 單一檔案取消索引git reset HEAD <檔案名稱>切換到某次 commit 紀錄git checkout <commit number>將單一檔案或資料內容變更回最後一次 commit 內容git checkout -- <檔案名稱>刪除最近一次 commitgit reset --hard “HEAD^”還原到上一次的 commit 狀態 git reset --hard ORIG_HEAD刪除最近一次 commit,但保留異動內容git reset — soft “HEAD^”commit 後發現有幾個檔案忘了加入進去,想要補內容進去時git commit — amend
↪ 分支
顯示所有本地分支git branch新增分支git branch <分支名稱>切換分支git checkout <分支名稱>合併指定分支到目前的分支git merge <分支名稱>刪除分支git branch -d <分支名稱>
➩ 遠端數據庫操作
複製遠端數據庫git clone <遠端數據庫網址>查詢遠端數據庫git remote <遠端數據庫網址>將本地分支推送到遠端分支git push <遠端數據庫名稱> <遠端分支名稱>將遠端分支拉下來與本地分支進行合併git pull
↪ 標籤
查詢標籤git tag查詢詳細標籤git tag -n刪除標籤git tag -d <標籤名稱>新增輕量標籤git tag <標籤名稱>新增標示標籤git tag -am “<備註內容>” <標籤名稱>
↪ 暫存
暫時儲存當前目錄git stash瀏覽 stash 列表git stash list還原暫存git stash pop清除最新暫存git stash drop清除全部暫存git stash clear
可以查看更多 Git 上得用法
https://gitbook.tw/interview 高見龍大大的文章
▶ 實際發生狀況
狀況一:權限不足
當我原本需要從正式環境將開發完的上線版本 git pull下來時
卻報錯,報錯的原因如下remote: Counting objects : 20, done
remote: Compressing objects: 100% (11/11) done.
remote: Total 11 (delta 8), reused 0 (delta 0)
error: insufficient permission for adding an object to repository database .git/objects
fatal: failed to write object
fatal: unpack-objects failed那後來查一下原因是,東西有從 remote 端載下來,但是 .git/objects 沒有權限可以寫入那我們這時候需要到 .git/object 給予權限
sudo chmod 777 -R .git/objectschmod能改變權限,-R是目錄下所有文件,777就是最高權限(讀,寫,執行),
chmod -R 777 * 意思就是將當前目錄下所有文件都给予777權限那這個權限給多少,就看當前狀況來決定
之後再執行 git pull 就可順利操作那怎麼發生的原因並不確定,因為之前可正常操作,但突然發生權限問題,
推斷可能是 git server 上的權限有出現問題吧?