GitHub Note

Posted on Feb 20, 2022 by Allen
Self-learning GitHub

上傳到 GitHub 方式


  • 不用額外設定任何東西,只是首次用的時候會要你登入 GitHub 帳密
  • 上傳時選擇 HTTPS 方式

  1. ssh-keygen
  2. 回答問題後,打入你想要設定的密碼 (private key)
  3. 到 GitHub settings 裡設定 public key
    • 想要每一份專案都用同一個 key 就到使用者設定裡設定
    • 想要每一個專案都不同,就到每個專案裡設定
  4. 上傳時選擇 SSH 方式

創建一個 Repository 名詞解釋


  • git remote add origin https://github.com/s1092923/s1092923.github.io.git
    • git remote : 跟遠端有關的操作
    • add : 加入一個遠端的節點
    • origin : 代名詞,指的是後面那串 GitHub 伺服器的位置
  • git push -u origin main
    • -u : upstream,每個分支可以設定一個 upstream,它就會追蹤某個分支 (通常是遠端 server 上的)

下載更新 Pull


origin/master : local master 分支的 upstream

git pull

git pull = git fetch + git merge

  • git fetch 後如下
  • git-fetch image
  • git merge 後如下
  • git-merge image

下載別人的專案檔 clone


使用 HTTPS 或 SSH 都是一樣

git clone <連結> ,可以存成不同的目錄名稱,只要在連結後加上你要的名稱

Pull Request


  • Pull Request (PR) : 先從原作者那邊把專案 fork 過來用,把自己想改的都處理完後,丟一個 pull request 回去給原作者,告訴原作者你的想法,要不要採納就要看原作者
  • 原作者的專案進度比自己 fork 過來的前進很多了怎麼辦?
    • 加上一個原作者的 遠端節點 ,利用 git remote add <自己取名字或 origin> <原作者 HTTPS>
    • git fetch <自己取名字或 origin> : 抓到原作者最新的內容,但還是領先本地的分支
    • git merge <自己取的名字或 origin>/main : 就會把最新的內容與本地的合併了
    • git push origin main : 這樣一來 GitHub 上的就會是最新進度了
    • git remote -v : 會看到目前專案的遠端節點有誰

我遇過的問題


背景 : 我學習這些 git 指令常常會在本機用兩個 GitHub 帳號實作專案的 pull request 及其他處理

  1. 問題 : github push failed (remote : Permission to userA/repo.git denied to userB)
    原因 : 因為你第一次登入 userB 的時候,系統會把 github.com 的用戶連結指向 userB,因此每次做都會讀取到 userB 的用戶資料 解決 : 進入 控制台 > 使用者帳戶 > 管理您的認證 > Windows認證 > 一般認證 ,找到 git:https://github.com ,把它刪除

Reference


Note

透過 GitHub 讓我可以在上面分享我做的一些小專案,並架設我自己的網站