# W_Git note ## gh-pages GitHub Pages 是 GitHub 提供的一個免費服務,專門用來部署靜態網站。簡單說,它的目的就是: ✅「讓你把 HTML、CSS、JS 等前端專案部署到網路上,讓別人可以用網址打開你的網頁。」 - 前端框架(Vue / React / Vite / Astro 等) - 靜態文件、個人作品集 - 專案文件、簡單部落格 - 學習用小專 目前確定它只能上靜態網站,因為 GitHub Pages 是靜態伺服器,不知道如何處理 Vue Router 的 history 模式路由(例如 /first-visit)。這是單頁應用(SPA)在部署到 GitHub Pages 上的一個常見問題。 現在改用 Netfliy,一切都是路徑問題,要注意 - vite.config.js 裡面樣新增 base:"" - router 裡面的 ```javascript= const router = createRouter({ history: createWebHistory('/2025-tarot_planning'),//這裡面要填入的內容是github ropo name routes: [ { path: '/', component: () => import('../views/FirstVisit.vue'), //這裡首頁是關鍵 }, { ``` 新問題 可以在netlify開啟 但是無法在其他分頁開啟... 明天在繼續 ### 設定git個人基本資料 - 開啟terminal - 輸入`git config --global user.name "此處輸入名稱"` - 輸入`git config --global user.email "此處輸入email"` - 完成 - 若想檢查輸入`git config --global --list` ## 設定快捷鍵 #### option 1 `git config --global alias.st status` 這樣你就可以用 git st 來取代 git status。 你可以为常用的 Git 命令设置更多别名,例如: `git config --global alias.co checkout` `git config --global alias.br branch` `git config --global alias.cm commit` `git config --global alias.df diff` `git config --global alias.lg "log --oneline --graph --decorate --all"` ### 如果有空格 需要加上單引號 `git config --global alias.cm "!git commit -m "$@""` ### 如果想兩個功能以上 自動 add + commit `git config --global alias.ac '!f() { git add . && git commit -m "$@"; }; f'` ### 變更本地分之名稱 先切換到更名的分支,在使用下面這串 `git branch -m <new name>` #### option 2 打開git設定 git config --global --edit 直接编辑 ~/.gitconfig 文件 打开终端,使用你喜欢的文本编辑器打开 ~/.gitconfig 文件,例如: nano ~/.gitconfig 在 [alias] 部分添加你的别名。例如: ``` [alias] st = status co = checkout br = branch cm = commit df = diff lg = log --oneline --graph --decorate --all ``` 保存并关闭文件。 这样你就可以使用设置的别名来快速执行常用的 Git 命令了。 ## git reflog `git reflog`使用後會跳出SHA-1值  假設我想回到``4e79205``就使用``git reset 4e79205 --hard`` [參考](https://w3c.hexschool.com/git/10bf7677) # status 作用:簡易顯示狀態 不會顯示細節 ``` $ git status -s M README MM Rakefile A lib/git.rb M lib/simplegit.rb ?? LICENSE.txt ``` **以下為上方程式碼解釋** - status是狀態 - -s是short簡短文章得意思 - M是modified 曾被編輯過的意思 - MM是範例中Rakefile,,則是曾經修改過也預存過,但之後又再次修改,所以總共有二次修改,一個有預存一個沒有。 - A = A是added 被加入預存區的新檔案 - ??= ??表示未被追蹤的檔案 [簡潔的狀態輸出](https://git-scm.com/book/zh-tw/v2/Git-%E5%9F%BA%E7%A4%8E-%E7%B4%80%E9%8C%84%E8%AE%8A%E6%9B%B4%E5%88%B0%E7%89%88%E6%9C%AC%E5%BA%AB%E4%B8%AD#:~:text=modified%3A%20%20%20CONTRIBUTING.md-,%E7%B0%A1%E6%BD%94%E7%9A%84%E7%8B%80%E6%85%8B%E8%BC%B8%E5%87%BA,-%E9%9B%96%E7%84%B6%20git%20status) --- # commit ### 提交 git commit -m "把暫存區的內容移往Repository" git commit --allow-empty -m "這個指令是加空的資料夾.當練習用" ### 回到commit前 - https://gitbook.tw/chapters/using-git/reset-commit # branch ### 新增分支 - `git clone 要下載得link` - `git branch 新分支名稱` ### clone gitlab branch 同時新增一個得branch - `git clone -b <existing_branch> <repository_URL> <new_branch_name>` - `<existing_branch>` 是你要克隆的现有分支的名称。 - `<repository_URL>` 是 GitLab 存储库的 URL。 - `<new_branch_name>` 是你想要创建的新分支的名称。 ### 檢視專案裡面得所有分支 - `git branch -r` ### 主要針對分支的檢查 轉換 git branch:檢查目前的分支 git checkout 分支名:轉換分支 git branch -D 分支名:強制刪除分支 此時會顯示分支的SHA-1值 git branch 新分支命名 SHA-1值:這樣是回朔刪除的部份 如果要檢查刪除的內容 先git checkout 新分知名 在用ls -al ### 現有的master 在新建立分之 按步驟 1. `git remote add [branch name][ssh link]` = 用原有的分支的基礎上再建立新的分支 2. `git checkout -b [branch name]` =checkout切換分支 -b是指branch ## 刪除 刪除遠端分支 : git push origin --delete <branch_name> 刪除本地分之 : git br -D <branch_name> --- # merge 遇到 error你尚未結束你的合併(MERGE_GHEAD) 可以使用 git merge --abort git reset --merge 戒除  # 刪除remote # version git - -version 檢測板本 # HEAD 是指標 指向某個分支 cat .git/HEAD 檢查目前HEAD所指向的分支 $ 符號是系統提示字元 意思是需要手動輸入指令 若在輸入則會出現錯誤 優勢 可以快速存檔 進行版本控制 以及做了啥動作都知道 如果斷網連不上伺服器 也不影響存取 比方你在深山或是飛機上都還可用 如果是平面設計也勉強可以 但會無法精準 MacOS 需要下載homebrew軟體來安裝git sudo 是系統最高管理員 Chris建議不要使用任何前綴為sudo的來下載程式 GUI, graphic user internet 圖形界面工具 指的是應用程式的logo圖示 一個觀念 不要看到文字就害怕 想想圖形界面也有可能你按了什麼東西導致bug ~ 符號代表home目錄 home就是所有資料夾的頭 假設我要去桌面的a資料夾 就是 cd ~/桌面/a ls 列出目前資料夾裡面有的檔案 a是指連小數點後面都會顯示 l則是顯示檔案權限 建立者 建立時間 ls -al cd 進入檔案位置 (這樣才能進行編輯) cp 複製檔案 mkdir-make directory 製作資料夾 rm-remove 刪除 rm vdd.html or rm *html rm * 全部的符號 刪除全部所選檔名 EX: rm *html 這樣就會刪除全部後綴為html的檔案 rm -r 是資料夾 alias 設定縮寫 EX: git config - - globol alias.l “log - -oneline - -graph” 設定 l 為 log - -oneline - -graph git init 意思是初始話目錄 可以對該目錄進行操作 -m = message 表示你要在命令行中直接提供一條提交訊息。這條訊息應該簡潔而清晰地描述你這次提交的目的或所做的更改 EX : git commt -m “context” init =initialize 初始化作用是初始化一個新的 Git 儲存庫。通过这个命令,你可以在一个目录中启动版本控制,并创建与 Git 相关的必要配置和文件。 q =quit 當在git help頁面想退出就使用q git clone 是複製檔案到本機 擷取github上專案的https or ssh連結 並且複製貼上 EX : git clone [git@github.com](mailto:git@github.com):bondler1994/2024.01.16-.git git pull 如果有企業github 而你不想下載全部檔案到本機 只要修改過得內容 就用pull EX ; git pull origin main git pull git remote set-url origin 網址 更改http or ssh 連結 EX : git remote set-url origin [git@github.com](mailto:git@github.com):bondler1994/2024.01.16-.git git remote -v 檢視連結到什麼地方 http or ssh -v 是verbose 主要在獲取更多詳細訊息 如果遇到別人更新檔案 然後發生git上傳錯誤 就先用git merage 去偵測合併 然後再做上傳動作即可 ## git add ### 新增 `git add <檔案>`可以獨立新增檔案,依照選取檔案名稱新增 `git add .`全部檔案新增 ### 刪除 `git restore <file>`可以獨立刪除檔案,依照選取檔案名稱新增 `git restore .`全部檔案刪除 >git add . or git add --all 都是把所有檔案都加到暫,而舊版本 add . 無法加入刪除檔 ## git 檔案轉換 A 分支是 aa B 分支是 bb 架設我建立了 A 分支,我存完檔案之後(推上 github),傳換了另一個分支 B,這時 A 分支檔案內容轉換成 B 了。我現在想要轉換回去 A 可以(範例 ) `git co aa/bb` # 此心得來自Ajay git練習之後重點整理 ### 一般專案進程 1. 分之(假設btn)發pr(pull request)給dev 2. dev檢查btn沒問題後再發pr給main 3. 最後main確認合併dev --- ### 注意事項 - 要確保commit SHA值隨時存在,即使合併或改動都不能讓它消失 - 每做一次commit,SHA值都應該要不同,這樣若出錯才容易找,若都一樣會看不出差一點 - 假設分之btn沒有經過dev不小新發pr給main,而main也不小心合併,那就將dev merge main,雖然說是反過來了,不過意思其實也是一樣(特殊案例勿模仿) - 假設a想拿b得東西(這裡指專案內容),可以如何取得 - Rebase to b,這方法可以,只是gitgraph線條會混亂 - 從dev取,如果a想拿b,可以先請b更新檔案到dev,a在從dev取,這樣比較有系統性管理,gitgraph線條也會相對好看很多 - 分之工作內容完成後,被合併就直接刪除分之
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up