JavaScript Required
We’re sorry, but Coda doesn’t work properly without JavaScript enabled.
Skip to content
黃芝晴的軟體工程師之路
黃芝晴 / Hedi Huang
想邀請你成為我踏上軟體工程師之路的貴人
解決問題的好習慣
關於我
More
Share
Explore
黃芝晴 / Hedi Huang
git
alex宅幹嘛
git init 將folder設定為git repo(倉庫)
git add 檔名 加進指定變更檔案到git repo
git add. 加進全部變更檔案到git repo
git commit -m(message) 根據剛剛add的變更下一個註記
git branch -b 再下完commit後在這個變更處給一個較有規模性的標籤,並切換到這個標籤做開發
git merge
save both
git rebase 建議打指令 因為vscode的rebase怪怪的⇒
複製
1號branch的所有changes到2號branch
git checkout HEAD^
git checkout HEAD~1
git check master~2
git check 34c4
git branch -f master bugfix
git branch -f bugfix f816
以下這兩種適用於branch
git reset (soft/mixed/hard)回到過去
git revert 減去某個commit所記錄的change
Style Guide
http://udacity.github.io/frontend-nanodegree-styleguide/css.html
版本控制系統VCS 又稱SCM源代碼管理器
working directory
(目錄)工作區: 在atom(coder editor)中編輯file 其實是在working directory使用file
branch
分支 新的開發流程 從主線分支出來 在working directory裡
staging area
暫存區
/ staging index暫存索引/ index索引: Files on the Staging Index are poised(準備) to be added to the repository
repo
(repository)倉庫: 由commit構成 與git通訊
commit
提交: 由snapshot快取組成
checkout
檢出: 將repo裡的files複製到working directory下的動作
SHA
: commit的ID number EX.e2adf8ae3e2e4ed40add75cc44cf9d0a869afeb6
mv 原檔名 欲更改檔名
git init(initialize) 在本地端創造新的repo
在git bash裡建立project name
進到想要新增project的directory
cd
是進入資料夾
cd..
是回到上層資料夾
輸入
mkdir 資料夾名
來新增資料夾
然後用
cd
指令進到新建的資料夾裡
輸入
git init
在該資料夾裡新增空的(初始)一個repo
資料夾名為.git 這是一個隱藏的資料夾
可能需要確認"檢視"裡是否設定顯示"隱藏的項目"
git clone 複製任何地方的repo到本地端
進到想安置要複製的repo的directory裡
按右鍵選擇
在git bash裡輸入
git clone 要複製的repo的https 重新命名(選擇性)
git status 查看repo狀態
一樣進到想查看的repo的資料夾裡
打開git bash
輸入
git status
git log 顯示已完成的commit/ tag / branch
在
:(less分頁)
處按
↓
可以看到更早以前的commit 同樣可以按
↑
檢視較新的commit
到最早的commit就會看到"END"
要離開
:
就按
Q
就會從目前最底下的commit跳出
※指令補充※
j
或
↓
一次向下移动一行
d
按照一半的屏幕幅面移动
f
按照整个屏幕幅面移动
要
向上
滚动,按上
k
或
↑
一次向上移动一行
u
按照一半的屏幕幅面移动
b
按照整个屏幕幅面移动
按下
q
可以
退出
日志(返回普通的命令提示符)
查找commit
by message
git log --all --grep='message裡的內容'
簡短呈現
git log --oneline
統計呈現
git log --stat
補丁呈現
git log -p
同時呈現統計和補丁
git log --stat -p
顯示補丁且不顯示空白更改
git log -p -w
git show 輸入SHA 顯示補丁
git show SHA
git add 將files從working directory加到staging index
stage特定檔案
git add 所在資料夾/要stage的檔案(含副檔名) 資料夾/其他要加入的檔名
.
代表目前資料夾的所有檔案
stage該資料夾裡所有檔案:
git add .
git rm --cached 移除staging index裡的檔案快取
git rm--cached 要從staging index移除的檔案(含副檔名)
git commit 將files從staging index儲存到repo
透過atom添加commit message和description
git commit
不透過atom來新增commit message但無法添加description
git commit -m commit信息
git diff 呈現file新舊版本的差異(尚未stage, commit)
git diff
.gitignore(不含附檔名)
用txt建立.gitignore
在.gitignore中標記要ignore的檔案
※注意※
.gitignore裡
附檔名大小寫不分 *.png = *.PNG
但檔名分大小寫! be?rs ≠ Be?rS
git tag 幫commit加tag
列出現有tag
git tag
在最新commit的位置添加tag
git tag -a v要新增的版本號
會透過atom 編輯tag message
在特定commit位置添加tag
git tag -a v要新增的版本號 SHA
刪減
git tag -d v要刪除的版本號
git branch 協助研發以功能來新增branch
列出現有branch
git branch
新增branch
git branch 要新增的branch名
刪除branch
git branch -d 要刪除的branch名
git checkout 將head切換至其他branch 或專注於某個file
git checkout 要轉換到的branch
git checkout -b 要新增並轉換至的branch 根據哪個branch的起點
git checkout --file名
git log (--oneline) --graph --all 看到所有分支的所有commit
--graph 顯示分支歷程 --all 顯示所有分支的commit
git merge 融合branch
先git checkout到想要進行合併的branch
然後
git merge 要合併進來的branch
未合併前 目前 branch為master
fast-forward merge (快進合併)
master向前合併到footer master和footer指向同一commit
merge(普通合併)
siderbar合併到master 此合併會生成一個新commit
git commit --amend 修改最新的commit
※前提※欲更改的commit是最新的commit
commit message改錯字
git commit --amend
在atom修改
補充commit內容
完成任何想補充的內容後
git add 編輯過的文件
git commit --amend
git revert 依據
SHA
還原commit
git revert 要取消動作的SHA
會新增一個commit 說明這個revert
並且保留此commit的紀錄
Relative commit reference(HEAD)
當前的HEAD是ee7c426 HEAD^ 0eb2986 HEAD~ 也是0eb2986 HEAD^^ acf153d HEAD~2 也是acf153d HEAD^^^ 61ca221 HEAD~3 也是61ca221 HEAD^^^2 abbf495 HEAD~4^2 81cdb98
git reset 依據
HEAD
重置commit(小心使用!)
重置先前備份
重置前 在當前的HEAD 新增一個branch(例如: backup)
若想要某檔案
恢復備份
時的狀態的話
就
git checkout --file名
git merge backup的branch名
讓master的該檔案快進合併到backup裡
將commit退回working directory
git reset 要重置的commit的前面committ的HEAD
或
git reset --mixed 要重置的commit的前面committ的HEAD
會更新SHA
將commit退回staging index
git reset --soft 要重置的commit的前面committ的HEAD
會更新SHA
git init(initialize) 在本地端創造新的repo
git clone 複製任何地方的repo到本地端
git status 查看repo狀態
git log 顯示已完成的commit/ tag / branch
查找commit
git show 輸入SHA 顯示補丁
git add 將files從working directory加到staging index
git rm --cached 移除staging index裡的檔案快取
git commit 將files從staging index儲存到repo
git diff 呈現file新舊版本的差異(尚未stage, commit)
.gitignore(不含附檔名)
git tag 幫commit加tag
git branch 協助研發以功能來新增branch
git checkout 將head切換至其他branch 或專注於某個file
git log (--oneline) --graph --all 看到所有分支的所有commit
git merge 融合branch
git commit --amend 修改最新的commit
git revert 依據SHA還原commit
Relative commit reference(HEAD)
git reset 依據HEAD重置commit(小心使用!)
github
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
Ctrl
P
) instead.