iT邦幫忙

0

Local to Git to github 學習筆記,從建立Local 端至與 github 端連線後push-看似基礎又不知道是不是真的是基礎還是入門篇

  • 分享至 

  • xImage
  •  

前情提要:

基本上現在都過 AI要完成自推自己的專案應該不是問題,但應用更多的是公司甚至是企業的那種指令,這篇主要算是基礎知識筆記,在自學的過程中邊做邊紀錄,如果有錯或是不對的地方,還請各位前輩不吝指教~

1. git hub 點選頭像 setting ,並在當中頁面左側找到 emails ,點選進去找到 noreply email 記錄下來,然後透過

git config --global user.name "你想要的名稱" => 決定之後專案別人看到你的名稱
git config --global user.email "你找到的你的 noreply email" => github 給的 email

2.透過git init -b main 將目前資料夾初始化為 Git Repository,並把初始本機分支命名為 main。main 這個名稱可以自訂,但目前常見都用 main。

3.透過git status 指令來查詢現在在哪一個分支

4.透過 git log --oneline 來查看目前分支可追溯的 Commit 歷史,以及各 Commit Hash => 前面某一些字母加數字。

5.當檔案內容有改變,也可能是專案中某一個程式檔案有變,可以再次透過 git status 查看哪些檔案發生變動及所處階段,並在透過 git diff 指令來看尚未暫存的差異,並且可逐行看到內容。由於暫存區通常與最新 Commit 相同,所以這時可理解為「目前內容與最新 Commit 的差異」。

6. 確認檔案和其差異性後,可以透過 git add "檔案名稱" 將檔案目前的內容放入暫存區,準備成為被 Commit 的內容。

git add "檔案名稱" 會將指定檔案目前的內容快照放入暫存區,準備成為下一個 Commit 的內容。執行後,git status 會將它顯示在 Changes to be committed。

7.執行 git add 後,工作目錄與暫存區內容相同,所以一般 git diff 沒有差異。git diff --staged 則是比較「暫存區」與「目前最新 Commit(HEAD)」的差異,也就是查看下一個 Commit 將新增或修改哪些內容。

如果 git add 後又繼續修改 README.md,就會同時出現:
暫存區裡:第一次 git add 的版本
工作目錄裡:後來又修改的版本
這時必須再次 git add README.md,後面的修改才會進入下一個 Commit。

8.git commit -m "名稱" 則是將目前暫存區的內容建立成一個新的 Commit,-m 後面是 Commit 說明。

建立後:

產生新的 Commit Hash。
新 Commit 會記住前一個 Commit 是誰。
main 移動到新 Commit。
HEAD 因為正在 main 上,也跟著移動。
前一版仍保留,不會被取代或刪除。

9. 如果本機 Repository 尚未設定遠端 Repository,可使用 git remote add origin "GitHub URL",將遠端網址登記成名為 origin 的遠端。

origin 可以自行命名。
通常使用 origin 作為主要遠端的慣用名稱。
它只是把名稱與 URL 寫入 .git\config。

github remote url 則要去 Repositories 找到對應建立的專案,點入後點選 code 下拉區塊可看到 Clone ,將網址複製即可

10.遠端設定完成後,可以使用 git remote -v 檢查遠端名稱及 fetch、push URL 是否指向正確的 GitHub 帳號與 Repository。

主要確認:

遠端名稱是否正確,例如 origin。
GitHub 帳號是否正確。
Repository 名稱是否正確。
Fetch 和 Push 網址是否指向預期專案。
=>
fetch:從這個網址取得遠端內容。
push:把本機 Commit 上傳到這個網址。

11. 最後可透過 git push -u origin main =>

將本機 main 可追溯、而 GitHub 尚未擁有的 Commit 與必要內容全部上傳。
push:上傳本機 Commit。
origin:當初由 git remote add 設定的遠端名稱。
main:本機要推送的分支。
-u:建立本機 main 與遠端 origin/main 的關係。

結果Ex:1350966 (HEAD -> main, origin/main)
main:本機分支。
origin/main:本機記錄的遠端 main 最新狀態。
GitHub 網頁上實際顯示的分支名稱是 main,不會把它命名為 origin/main。

git branch -vv 可顯示 upstream,而通常第一次使用 -u 後,日後通常只需 git push即可,因為已經建立本機與遠端的關係

12.透過 git pull 從遠端分支取得新 Commit,並整合到目前本機分支。

最後日常通常都是這樣用:
因此日常工作通常是:

git status
→ git pull
→ 修改檔案
→ git status
→ git diff
→ git add
→ git diff --staged
→ git commit -m
→ git push

git add = 準備下一個版本
git commit = 在本機正式建立版本
git push = 將本機版本上傳 GitHub
git pull = 將 GitHub 新版本整合回本機

git 運作:
工作目錄 --git add--> 暫存區
暫存區 --git commit--> 本機 Repository
本機 Commit --git push--> GitHub
GitHub 新 Commit --git pull--> 本機分支

如果目前在其他分支呢?這樣git pull更新的就會是你現在在的其他分支,有點聽君一席話如聽一席話的感覺,但應該就是要注意你現在在哪個分支
=> git branch --show-current # 顯示目前所在的本機分支
=> git branch -vv # 顯示各本機分支追蹤哪個遠端分支

注意的部分:
git pull origin main
=> 意思是「取得 origin/main,並整合到目前所在的本機分支」,不保證目前分支就是 main。所以執行 Pull 前,先用 git status 確認所在分支相當重要。
因此要用 GIT STATUS 確認目前 HEAD 在 main (On Branch main ),且main 是追蹤 origin/main (branch is up to date with 'origin/main')

1.git branch feature-readme 建立本機分支
2. git branch 查詢當前分支有哪些
3.git switch "分支名稱" 來切換分支
4.git log --oneline --decorate -5 查詢分支指向位置
5.git commit -m "新增 Branch 測試內容" 建立commit
6. git log --oneline --decorate --graph --all -5 查看分支位置變化
7. git switch main 再次切回某一個分支
8. git merge "分支名稱" 將某一個分支合進當前所在的分支中
9. git push =>上傳合併後的分支
10. git branch -d feature-readme 將已合併的分支刪除,這個分支必須是已經被整合到主要的分支,或是可捨棄不用情況
11. git branch -vv 最後確認最終分支狀態

1.git switch -c feature-remote-test 同時建立並切換分支 -c 是建立
=> 等於 git branch feature-remote-test + git switch feature-remote-test 這兩個指令一次執行

2.git push -u origin feature-remote-test 建立遠端分支與追蹤關係
=>建立本機 feature-remote-test 與 origin/feature-remote-test 的追蹤關係
-u 設定完成後,日後在此分支可直接執行 git push

git commit = 更新 Local 分支
git push = 將 Local Commit 同步到 Remote 分支


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言