GitHub Note
Posted on Feb 20, 2022 by Allen
Self-learning
GitHub
上傳到 GitHub 方式
- 不用額外設定任何東西,只是首次用的時候會要你登入 GitHub 帳密
- 上傳時選擇 HTTPS 方式
- ssh-keygen
- 回答問題後,打入你想要設定的密碼 (private key)
- 到 GitHub settings 裡設定 public key
- 想要每一份專案都用同一個 key 就到使用者設定裡設定
- 想要每一個專案都不同,就到每個專案裡設定
- 上傳時選擇 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 merge 後如下
下載別人的專案檔 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 及其他處理
- 問題 : github push failed (remote : Permission to userA/repo.git denied to userB)
原因 : 因為你第一次登入 userB 的時候,系統會把 github.com 的用戶連結指向 userB,因此每次做都會讀取到 userB 的用戶資料 解決 : 進入 控制台 > 使用者帳戶 > 管理您的認證 > Windows認證 > 一般認證 ,找到 git:https://github.com ,把它刪除