進入官網 http://git-scm.com/
有鑑於Windows Terminal真的是醜到無法言喻,雙系統都有用的我更加難以忍受,於是美化它變成了必備的課題,共勉之。
// Windows Terminal -> Ctrl + Shift + , -> settings.json
profiles:
{
"defaults": {},
}
// 改成
profiles:
{
"defaults":
{
"font":
{
"face": "MesloLGM NF"
}
},
}
// Windows Terminal -> notepad $profile
第一次會顯示找不到文件檔,創建新文件並且輸入"oh-my-posh init pwsh | Invoke-Expression"並且保存
// Error 出現無法載入Windows Powershell XXXX.ps1檔案
如果出現無法載入Windows Powershell XXXX.ps1檔案,先開啟Powershell並且輸入"Set-ExecutionPolicy RemoteSigned",然後改為Y即可變更執行原則
// 更改主題配置
輸入"Get-PoshThemes",複製喜歡的主題樣式檔案路徑,重新輸入"notepad $profile"開啟文件檔,將內容改為"oh-my-posh init pwsh --config "C:\Program Files (x86)\oh-my-posh\themes\dracula.omp.json" | Invoke-Expression"
// if no files
$ touch .gitignore
// example
index.html
css/
*.html
master:本地端master
origin/master:雲端倉庫master
git pull
git push -u origin [branch]
git checkout -b [branch]
打開 Terminal 輸入
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
輸入後就會出現下面這幾行:
Generating public/private rsa key pair.
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
Generating public/private rsa key pair.
此行的意思就是會根據提供的 email 創建一個新的 SSH 金鑰。
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
這一行是確認儲存的位置,可以直接按下 Enter 就好。
Enter passphrase (empty for no passphrase): [Type a passphrase] Enter same passphrase again: [Type passphrase again]
這兩行是要輸入密碼與確認密碼,如果不輸入就空白即可。
加入 SSH-Agent
- 確認 ssh-agent 啟動
$ eval $(ssh-agent -s)
將 SSH Key 加入 GitHub 帳號中
- 輸入以下指令,複製 SSH Key 至剪貼簿
- windows : cat ~/.ssh/id_rsa.pub
- mac : cat ~/.ssh/id_rsa.pub | pbcopy
接著去GitHub設定SSH and GPG keys貼上即可
測試 SSH Key 聯繫
- 開啟 命令提示字元 或是 Git Bash
- ssh -T git@github.com
出現以下訊息就是成功了~
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.
// Start ssh-agent if not started:
$ eval `ssh-agent -s`
// Add your private key using ssh-add
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/user/.ssh/id_rsa:
Identity added: /home/user/.ssh/id_rsa
(/home/user/.ssh/id_rsa)
// Check if the key is added (parameter is a lowercase L):
$ ssh-add -l
2048 55:96:1a:b1:31:f6:f0:6f:d8:a7:49:1a:e5:4c:94:6f
/home/user/.ssh/id_rsa (RSA)
// Try to connect to your Git server:
$ ssh git.example.com
將branch內的commit合併到master裡面
接著將包含新的commit的master push到雲端上
tips:更改了什麼,其他工程師很難知道,而且直接合併到master容易影響系統
將分支push到雲端上後
在雲端上提交Pull Request
tips:其他工程師可以查看你在branch中進行的改動(一般稱為code review)
git stash
// 查看有哪些暫存
git stash list
// 復原暫存
git stash pop
// 清除最新暫存
git stash drop
// 清除全部暫存
git stash clear
// 使用git rebase -i HEAD~5確定要修改哪些commit
// 其中,HEAD~5表示最近的5個,後面的5可以改成其他數字。
git rebase -i HEAD~5
----------------------
// 接著會列出最近五筆commit
pick 1d316b0 message01
pick f429786 message02
pick 880cfbc message03
pick c55cf56 message04
pick d10fd07 message05
左邊第一列表示命令(command)
中間一列表示commit id
最右邊一列是我們之前提交的message
這裡的展示順序
是按事件順序排列的
就是說第一行是最早提交的資訊
----------------------
// tips: 按i進入編輯模式、esc離開編輯模式、:wq儲存離開
假設我們需要修改第2條和第4條commit的message
則需要將它們的命令(command)
由pick修改為edit
刪除則是改為drop
其它地方保持不變(此時還不用修改message)
----------------------
pick 1d316b0 message01
edit f429786 message02 <- 注意本行第一列的pick改為edit了
pick 880cfbc message03
edit c55cf56 message04 <- 注意本行第一列的pick改為edit了
pick d10fd07 message05
修改完成之後,儲存修改。
----------------------
儲存完了之後
git的分支就會發生改變
從原來的master改成了我們第一個edit的commit id
test-rebase git:(master) >
test-rebase git:(f429786) >
// 修改message
// tips: 按i進入編輯模式、esc離開編輯模式、:wq儲存離開
git commit --amend
// 對修改進行儲存
git rebase --continue
// 標記了幾個edit就重複幾次以上修改與儲存
Successfully rebased and updated refs/heads/master.
// 使用git push -f強制更新遠端伺服器
git push -f