# Git # Git repository and Git command ## 環境設定 ### config設定 ```command # 設定信箱 vagrant@vagrant:~$ git config --global user.email "your_email@your_domain.com" # 設定名稱 vagrant@vagrant:~$ git config --global user.name "your name" ``` ### ssh Key設定 + purpose:允許現在的主機與github server 通訊 + Step: + Go to this [website](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) for ssh generating and git settings + or follow the steps below ```command vagrant@vagrant:~$ ssh-keygen -t ed25519 -C "your-email@domain.com" #生成ssh key: private key and public key,ouput的圖型不重要 vagrant@vagrant:~$ eval "$(ssh-agent -s)" #啟動 ssh-agent vagrant@vagrant:~$ ssh-add ~/.ssh/id_ed25519 #確認ssh agent 能否正常運作 vagrant@vagrant:~$ cat ~/.ssh/id_ed25519.pub #印出public key,並將結果貼到git網站設定裡面的ssh上 vagrant@vagrant:~$ ssh -T git@github.com #測試是否連線成功 ``` ## 專案啟動 + 在本機啟動該專案的git版本控制 ``` console ## 將目前的路徑作為專案 vagrant@vagrant:~/your_project_dicretory$ git init ## 所有的檔案 add vagrant@vagrant:~/your_project_dicretory$ git add * ## commit vagrant@vagrant:~/your_project_dicretory$ git commit -m "type any message you want" ## 將Master分支改名為main分支 git branch -M main ``` + github 遠端儲存以及版本控制 + 先在 github 上建立該repository + 然後在終端機輸入 ```console vagrant@vagrant:~/your_project_dicretory$ git remote add origin git@github.com:your_user_name/your_project_name.git vagrant@vagrant:~/your_project_dicretory$ git push --set-upstream origin main ``` ```bash= ## 不需要同步的檔案 (個資、數據etc) vim .gitignore ## 在github上建立專案 ``` ## 常用git 指令 ### 分支相關 ```console git branch -a #確認現有全部有哪些分支 git branch new_branch_name #開設新分支 git checkout branch_name #切換分支 # 如果github上有main & develop兩個分支,可以直接切換,不需要先branch git chekcout develop # 從github上的main分支複製檔案下來 git pull # 將檔案推上github上的main分支 git push # 合併分支 git merge branch_name git rebase branch_name ``` ### add and commit ```console git add -A git commit -m 'any message'