# Git 學習歷程 #1 ###### tags: `Git` `github` `MacOS` ## 環境  ## 參考資料 + https://www.youtube.com/watch?v=Zd5jSDRjWfA (主要) + https://www.youtube.com/watch?v=CeC_qyQHiCE (SSH) + https://iter01.com/509990.html + https://yychen.gitbooks.io/basics/content/ (十分詳細的網站) + https://yychen.gitbooks.io/basics/content/chapter4/ (vim 指令) ## 安裝 Git 這部分可以跟著 https://youtu.be/mmkDyV59nRo 大神一起做 #### 1. 打開 Terminal #### 2. 安裝 Homebrew #### 2. 透過 Homebrew 安裝 Git ## 本地端 Git 步驟: 1. 建立一個資料夾,視為一個 repository, 在資料夾的 terminal 輸入 ==git init==, 即可讓 git 知道此資料夾。 1. 預設分支名稱多為 main、master, 若不確定即可用指令 ==git status==。 1. 資料夾若需要將全部檔案加入給 git 追蹤, 則輸入 ==git add .== 即可, <font color="#f00">注意</font>:此時只是將檔案存入一種 buffer 而已,git 還未正式追蹤。 1. ==git status==, 可同時查看有哪些 files 已經被 git 加入暫存區了(還未正式被追蹤)。 1. 將暫存區所有修改提交給 git 追蹤(添加紀錄), 執行 ==git commit -m "說明"==,一定要加 -m。 *為啥必須加 -m,https://ithelp.ithome.com.tw/articles/10266697 1. 這樣就完成在本地端做版本控制的紀錄了。 *至於為啥有個暫存區的概念, i.e.為啥需要 git add 與 git commit 分開, 參考 https://www.zhihu.com/question/19946553 ## 連結遠端 Git 此以 github 為例, 因為 github 不再支援密碼存取遠端, 所以好像只能用 ssh 連線的方式同步 repository 了。 ssh 可以參考上方[影片2](https://www.youtube.com/watch?v=CeC_qyQHiCE)的設定。 步驟: 1. 在 github 上建立 repository,Readme 可以不用先加入。 2. 會出現一個頁面如下,執行第二段就完成了, 3. ==git remote==,可以得知已經有建立哪些遠端連線了。 ## 遇到兩端不同步的狀況 本來想在 Github 上,撰寫 Readme 當作筆記, 最後發現有點麻煩,還是在 Hackmd 紀錄好了。ㄎㄎ 所以剛開始有在 Github (遠端 Git) 上做 commit 了, 在回來本地端執行 commit 時,就會跑出以下錯誤回報,  :::info 解決辦法如下 ::: 可以從本地端 git push 上去遠端, 當然也可以從遠端下載 pull 回來本地端ㄚ。 大概如以下網站所述相同,(點選一下圖片XD) [](https://backlog.com/git-tutorial/tw/stepup/stepup3_2.html) 因此我們就先將遠端的分支下載下來, 使用指令 git fetch origin 即可從 origin 這個節點, 下載遠端上的分支到本地端(兩端仍未同步)。 就是遠端回來是 origin/main 這個分支, 本地端仍是 main 這個分支, 我們可以看 origin/main 長怎樣, 用 git diff main origin/main 來看差異  之後我們就 merge 起來唄, 兩邊就可以同步了, 直接輸入 git merge origin/main 即可, 不用在特別說明另一個, 因為已經是本地端了。  merge 完成後, 再記得 push 回遠端就打工告成了。  查看 git log 就可以發現許多紀錄了XD  話說用 git pull 就可以將 fetch + merge 完成了。 下次在研究唄。
×
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