iT邦幫忙

5

[菜鳥筆記] Git 的使用方法 & 把專案推上 Github去

  • 分享至 

  • xImage
  •  

前言

這篇就是因為真的很不熟 git 的用法,感覺簡單幾個指令,但是每次要推都得再回去翻教案~
真的記不起來 /images/emoticon/emoticon02.gif

希望在這裡整理一篇 git 的用法,以後就來看自己整理的筆記就好! 未來也會把每次遇到的相關問題統整在下面,看能累積到多少吧 (笑)


Git可以做什麼呢?

大家是否有經驗,寫到一半發現整個錯了,要回去改不知道從何改起?
但是如果有做版本控制,就跟玩單機版遊戲一樣存檔回到之前的進度讀取檔案進入,就不怕啦~
對於共同協作也是一定要用的! 所以這個真的是必備技能!

  • 記錄各版本的差異
    • git init
    • git add
    • git commit
    • git status
    • git push
  • 切換版本
    • rollback 回復到上一個版本 (git reset, git rebase)
  • 利用分支同時開發不同功能

程式碼的三個階段:

  1. Untracked/Unstaged files 程式碼還尚未被登錄
    使用 git add 推入到下一個階段
  2. Staged files 程式碼已被加到版本控制系統裡
    使用 git commit 提交程式碼
  3. Commited 將程式碼提交到 repository,儲存到此就可以有版本記錄
    在過程中,可以使用 git status 來確認專案當下的狀態

git 指令說明:

  • git init : 登錄專案
    創造一個 .git 的資料夾,保存著版本控制的所有資訊

  • git add : 登記更動,準備提交
    後面加檔案名稱把檔案登記起來 git add index.js 或是 git add .一次選出路徑內的所有的檔案

  • git commit : 建立版本節點
    在這裡,為了紀錄改動的原因或重點方便日後自己或別人查看,要加上message來提交
    message 也可以直接縮寫成 m, git commit --m
    git commit --message "change h1 color"

  • git status : 查看狀態
    使用 git status 指令來查看狀態,這個指令會列出程式碼不同的專案
    並用顏色區分:
    紅色: 檔案程式碼有更動, 但是並未被登記
    綠色: 檔案已經登記,但尚未被提交
    若已經提交的檔案,就不會出現在這邊囉~

    https://ithelp.ithome.com.tw/upload/images/20221212/20153933bLlFGtbICY.jpg

  • git log : 查看 commit 記錄內容,由新到舊列出commit內容
    每個節點都會帶有SHA-1亂數、作者、提交日期、commit message
    加上副指令,可以用 git log --oneline,變成列出紀錄 commit 都是簡化成單行呈現
    SHA-1碼是亂數40位生成,可以用前7碼來縮寫作使用

    另外,我們加上另一個好用的工具 Source Tree 是圖型介面版本的管理工具來做比對
    覺得 終端機不太好用的人,可以使用 Source Tree 來管理也可以

    https://ithelp.ithome.com.tw/upload/images/20221212/20153933NyIytRpCCI.jpg

  • git diff : 查看變異內容,比較兩者差異

    • 如果指令不加任何參數,則會直接拿最新的版本和工作中的程式碼做比對
    • 若要比對特定版本,需寫成 git diff <SHA-1> <SHA-1>
      e.g. git diff 1c8cef9 df99a2c

    可以從同一張圖看到,我前面也有用 git log --oneline 來查看commit 紀錄
    1c8cef9 前的 df99a2c 版本: 我增加了一些文字內容在html,commit "add greetings in different language"
    1c8cef9 最新版本,我將這些剛新增的文字增加了顏色
    如下圖,他就幫我把有差異的比較內容列出來了~

    https://ithelp.ithome.com.tw/upload/images/20221212/20153933IbvGoDTig1.jpg

    額外筆記一下 在紀錄裡常出現的 HEAD
    HEAD 這個符號代表目前分支裡最新的commit
    現在因為預設的分支還是master, 所以可以看到上方的圖片 HEAD 會指向 master

  • git reset : 重設版本

  • git rebase : 修改commits的呈現

將 Local Repository 推上 Remote Repository (github)

接下來 ~ 終於要來推上去 github了!
一起利用 git remote 來設定遠端連線,再用 git push 推送分支到遠端

在此之前,我們在 github 先來新增一個 repository
建立之後,會看到這個 repository頁面, github 整理好的三種指令:
(1) 在 github 上直接建立一個全新的repository推上來
(2) 將本地現有的專案推到遠端,這邊也就是github
(3) 是從其他遠端導入 repository

https://ithelp.ithome.com.tw/upload/images/20221212/20153933yXMOAfJR5E.jpg

  • git remote add : 新增遠端儲存庫
    git remote add <name> <url>
    此處的 可以自己定義名稱,但是 則要參照 github 上 repository的名稱
    如上圖,在這邊就是 git remote add origin https://github.com/Cherylruei/backend_learning.git
    origin 就是 ,我可以自己改個 first_project
    • git remote: 不加上任何副指令,就可以查詢遠端儲存庫我推了 first_project 這個repository
    • git remote -v: 可以列出更詳細的清單,如下所示:
    first_project   https://github.com/Cherylruei/backend_learning.git (fetch)
    first_project   https://github.com/Cherylruei/backend_learning.git (push)
  • git remote remove: 刪除遠端儲存庫
    git remote remove first_project

  • git push: 推送分支

    • -M = Master 是要推送分支的名稱,若沒特別設定,此為預設名稱。
    • 但是 github 2020年後 重新命名為 main,這就是第一行的用意
    • origin 位置是要推送的遠端儲存庫名稱,origin是 github的預設名稱,所以我需要修改為 first_project
  git branch -M main
  git push -u origin main

修改成

  git branch -M main
  git push -u first_project main

輸入以後,會跳出畫面要你輸入 github的 username 和 password
我雖然知道 password 被停用了,還是一開始不小心照輸入密碼......
果然跳出下方截圖錯誤

https://ithelp.ithome.com.tw/upload/images/20221213/20153933pWPAv17bVk.jpg

我就直接複製裡面錯誤內容google,就有人說密碼停用,這邊要直接輸入 personal access token,而不是之後還會跳出一個視窗讓你輸入這個 token

前面幾次推送錯誤沒紀錄到,但都是把錯誤內容貼google搜到的,而且很快就能找到答案~


另外小筆記: 忘記怎麼在終端機複製貼上?
git bash copy and paste:
copy: Ctrl + insert
paste: Shift + insert


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言