[Git]如何透過SmartGit或SourceTree上傳專案到遠端
服用本文之前,請先學會[Git]如何透過SmartGit或SourceTree將專案加入本機local端的Git版控
一、首先介紹SmartGit的方式:
step1:
登入github然後選creat repository, 該填的參數填一填,然後就送出submit


step2:複製下面的 http://OOXX.git路徑

Step3:在SmartGit打開已經存在於本機local端的git專案,並點選Remote再選擇Add


Step4:輸入剛才記錄下來的path並按下Add按鈕

Step5:再對此專案按下滑鼠右鍵,並選擇push,然後會跳出視窗要你輸入Github登入的帳號密碼,這樣就成功把本機的git專案上傳到遠端remote了!

二、再來介紹SourceTree的方式:
step1:
開網頁登入bitbucket網站然後在這邊https://bitbucket.org/dashboard/repositories做creat repository
ps. 當然你也可以還是用github來create repository, 不過SourceTree因為跟BitBucket有合作,而且SourceTree又讓大家免費使用,所以這邊我幫BitBucket打點廣告

該填的資訊填一填,是否要包含readme請選擇NO!!

step2:複製下面的 http://OOXX.git路徑

Step3:在SourceTree打開已經存在於本機local端的git專案,並點選Repository再選擇Add Remote

該填的資訊填一填,然後按下送出,就成功add remote了

step4:接著在SourceTree按下Push,並且打勾select all,就成功把程式碼上傳到遠端囉


大概是這樣……
ps. 2021/11/17 bitbucket目前暫時還可以使用(帳號密碼)的方式push上去,不過第一次push的時候,會跳出helper的視窗讓您選擇以何種方式輸入帳密,請選擇"no helper"選項,並且打勾"Always use this option",接著按下確認,然後就會跳出視窗讓你輸入帳號密碼,接著輸入帳密之後,就push成功囉,這是第一次push才會出現的,第二次之後就不用再輸入帳密囉~~
20210929補充github的token的驗證……從上個月的八月開始,不能只有使用帳號密碼登入驗證,必須加上token
首先要去github官網找到產生token的網址,請點我。然後會看到下面畫面
Note是token的名稱,隨便打就可以
Expiration就是設定這個token是否會到期,如果有信心保管好不會被別人拿到,就選forever吧
SelectScopes就是存取的權限有哪些,如果這個token只是自己用不會分給別人使用的話,就全部打勾吧

最後你就會得到token囉,如下圖,記得自己保存好

接下來要回到你的github桌面軟體,例如githubDesktop或SourceTree或SmartGit,由於目前手邊只有剩下SourceTree,就以這個為例子,首先回到設定某個Repository的git網址畫面,如下圖,然後當然選擇github那個來編輯:

然後修改git網址,改成這個格式:
https://<token>@<git_url>.git


這樣就可以了,token驗證完成,你可以像是往常一樣push, pull了
20220316補充:bitbucket也不能用帳號密碼登入了,windows底下的bitbucket與sourcetree是配套的git工具,如果你是使用這一套配套(windows底下的bitbucket與sourcetree),可以照以下方式修正git設定:
到下面這個網址,點選create app password:
https://bitbucket.org/account/settings/app-passwords/

然後就會請你選擇此組app password的權限畫面:

選完了之後,畫面就會跳出一堆亂數一樣的密碼,記得把他複製下來。
然後sourceTree去options=>authentication,把你的bitbucket驗證整個刪除重建,密碼則記得改成輸入剛才的app password:

然後再到你的windows路徑下:把password檔案移除,然後再次push或pull git試試看…應該會重新跳出視窗叫你輸入密碼,記得這時候要輸入的是app password喔!
C:\Users\<UserName>\AppData\Local\Atlassian\Sourcetree
這樣應該就可以了…
參考資料:
https://williesmithchen.medium.com/%E5%9C%A8sourcetree%E4%B8%AD%E4%BD%BF%E7%94%A8github%E9%80%B2%E8%A1%8C%E5%85%A9%E6%AD%A5%E9%A9%9F%E8%BA%AB%E4%BB%BD%E9%A9%97%E8%AD%89-2fa-52f75a089368
https://community.atlassian.com/t5/Sourcetree-questions/Sourcetree-ignores-github-token-and-throws-403-error/qaq-p/1778978
https://itsmycode.com/solved-remote-bitbucket-cloud-recently-stopped-supporting-account-passwords-for-git-authentication/
https://community.atlassian.com/t5/Sourcetree-articles/Bug-Fix-Sourcetree-for-Windows-authentication-error-when/ba-p/1965968