f git learning ~ 迪貝之家

git learning

 

Git Tutorial For Beginners | Git Full Course | Git Crash Course | Git Training Course | Simplilearn
這個課程內容如下:
1.一開始講
warter fall
agile
devops
我原本的觀念都還很模糊
聽完那部分之後
想說...原來是這樣劃分的喔

2.它的第20項的demo : Commands in Git
有夠爛的
操作的人
根本不是很了解git
3.聽完item 21之後,我就覺得沒再聽的必要了
4.想了解git 的指令的話
  還不如聽底下這堂課
Git Tutorial for Beginners: Learn Git in 1 Hour
=============================
Git for Professionals Tutorial - Tools & Concepts for Mastering Version Control with Git
1. 聽完了"Branching strategies"後
原來沒有單一的規則
其實要視專案性質及該單位的習慣
不過我覺得最基本的應該還是就像影片中所提到
應該是有"short" 及 "long running"兩者並存最適合
還是會有兩個主要的branch
develop + main
再由delvelop 衍生出feature或hot fix的short branch
short 做完測試後,併入develop
develop branch 做完測試後
再併入main後,上production
只是這怎麼串出來
還得再思考及學習
2. Pull requests 這個部分
講得比Amigoscode的課程好
Git and GitHub Tutorial For Beginners | Full Course [2021] [NEW]
Amigoscode也有提到pull requests
但是講得很模糊
tower的人講的課程
直接在github上演示
fork ->change -> pull request -> merge(Intergration)
的概念
反正就是要控制code的人
review 你的code
如果ok的話,看能否併入原本的開發那條線
這樣我就能夠理解Amigoscode課程所講的git flow
一般開發人員,你不可能直接去修改main branch
應該都是你clone到你的本地端後
依據你被授予的開發任務
開啟一個新的branch
開發測試完後
commit後, push到你自己的branch後
然後要求pull request
請code reviewer檢視完之後
把你的code歸併到原程式碼當中
然後再把你的branch砍掉
恩...應該是這樣吧~~~
3. 今天是2022/2/4,把merge及rebase的部分看完了
前一陣子,聽到一個開發人員把repository搞爛的例子...........?????

怎麼會讓開發人員直接push 到master或main branch哩 ???

這部影片的發行組織tower
在結尾的部分,給了一個url
說是advanced kit的影片可以免費下載
好...用手機下載要花2小時
下載完再來看吧~~

4.2022/2/12 原來advanced 課程在u2上也有
Advanced Git Tutorial - Interactive Rebase, Cherry-Picking, Reflog, Submodules and more
那我幹嘛還下載!!
下載的影片沒有英文字幕
U2上的影片沒字幕
雖然有些字的翻譯有誤差
但是看久了
get就git...靠~~
初看時...一頭霧水

===============================
嘿嘿...
vscode 要用ssh來push或fetch
你不特別config
我就不相信
你能送/收你在github上的repository
(要補充一下,底下的指令輸入都是叫起
vscode後,再叫起terminal,然後再轉入git bash喔)
1.產key,我的環境是產出mykey及mykey.pub

ssh-keygen -t rsa -b 4096 -C "your email"

2.把public key 貼到你的github account

cat mykey.pub|clip -- 把public key的內容傳到剪貼簿

影片有介紹怎麼把public key送進github 帳號

3.調整我自己的push url
因為我原本是用https clone 下來的
為了要測試ssh,
我就改了一下

git remote set-url --push origin git@github.com:xxxx/xxxx.git

然後再git remote -v
看一下內容就知道了

4.這是最重要的一步

要起一個ssh agent
eval "$(ssh-agent -s)"
再來就是讀進你自己的private key

ssh-add ./mykey

然後用下列指令確認private key有讀進來

ssh-add -l -E sha256

這時候你到你的working directory下後
直接打git push
就會同步囉......
看起來https url會比較好用多了
只是用https url的認證就會變成使用token
哼哼.....
我是懶得再貼token,有點累
因為那是在gcp cloud shell上使用的
現在在測vscode
用ssh ,我就只需要記憶我建key時所使用的phrase
token實在是有點麻煩
github文章 Error: Permission denied (publickey)
有提到相關的錯誤解法
stackoverflow 的Github permission denied: ssh add agent has no identities
有提到怎麼載入private key

==2022/02/09=============
Git and GitHub for Beginners - Crash Course
這部影片最後
講到了fork的流程
很棒..
就如同我之前的理解一樣