# Git introduction ###### tags: `tutorial` `electrical_system` `NTURT` git最近開始不能用密碼QQ,要改用token,以下教學給大家參考 https://stackoverflow.com/questions/68775869/support-for-password-authentication-was-removed-please-use-a-personal-access-to ### Git vs Github * git:是一種版本控制的工具 * github:是一個可以讓你存放code的網站 因此git其實可以**只在本地端使用**->沒有github帳號也可以用 ### Install git on windows 可以參考以下教學,看到安裝完成部分即可 https://phoenixnap.com/kb/how-to-install-git-windows 安裝完成後打開git bash,輸入 ```bash git config ––global user.name "your github_username" git config ––global user.email "your email_address" ``` ### Basic git command #### 將repo下載到本地 1. 先到github上找到自己要下載的repo 2. 點選code  3. 點選複製  4. 到自己想放repo的位置,按右鍵點選git bash 5. 輸入以下指令 ```bash git clone "剛剛複製的那段" ``` 這樣就可以把repo下載到本地了 <hr> #### 接受他人的改動 若有人對repo進行了改動並上傳至github,可以輸入 ```bash git pull ``` 便可以接收他人的改動 <hr> #### 將自己的改動上傳至github 如果對於當前repo有所新增/修改,可以輸入 ```bash git add . # "." 代表當前資料夾,若只有要新增特定檔案可以改成檔案名稱 git commit -m "你這次做了什麼改動" git push ``` 這樣應該就可以上傳至github note: 若在自己push之前有其他人也push了,要先把他pull下來才可以push ##### commit message撰寫 我想在這邊提一下如何寫commit message,首先,我們要分出好的及壞的commit message * 好的commit message:在「一年後」讓維護人員進入狀況 * 壞的commit message:在「一個月內」讓維護人員找不出程式異動的原因 因此希望大家可以遵照以下格式,方便專案的維護 ``` <type>: subject ``` type的部分,以下定義出幾種type - feat: 新增/修改功能 (feature)。 - fix: 修補 bug (bug fix)。 - docs: 文件 (documentation)。 - style: 格式 (不影響程式碼運行的變動 white-space, formatting, missing semi colons, etc)。 - refactor: 重構 (既不是新增功能,也不是修補 bug 的程式碼變動)。 - perf: 改善效能 (A code change that improves performance)。 - test: 增加測試 (when adding missing tests)。 - chore: 建構程序或輔助工具的變動 (maintain)。 - revert: 撤銷回覆先前的 commit 例如:revert: type(scope): subject (回覆版本:xxxx)。 <hr> #### Branch branch算是多人合作專案中相當重要的一環,因為常常會有不同的部分需要進行,若是同時在一個repo上作業可能導致code動不起來等等問題,因此使用branch將可以與其他人分開進行開發,分別完成後再進行merge合在一起。 常見指令: ```bash git branch # 可以查看目前有哪些branch git branch "branch name" # 建立一個新的branch git checkout "branch name" # 切換至指定branch git merge "branch name" # 將指定branch與目前所在branchc合併 ``` note: 如果要切換branch,必須先將目前branch commit或是復原至目前最新commit,若要復原,可以輸入 ```bash git restore . ``` <hr> ### Conflict 如果自己跟其他人改了同一個地方,或是要把其他的branch merge進來時,git可能會判斷有些地方發生了conflict,要解決conflict的方法我目前試過最方便的是利用visual studio code,因此這邊介紹利用VScode來解決conflict的方法,也請大家下載VScode。 1. 若在pull後看到有顯示錯誤訊息,那基本上就是發生conflict了  2. 用VScode打開資料夾,可以看到是main2.py這個檔案發生問題  3. 打開檔案,可以看到發生問題的部分,我們可以選擇Accept Current Change/ Accept Incoming Change/ Accept Both Change  4. conflict解除完成
×
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