iT邦幫忙

0

git - 1 ( 環境安裝、基礎操作、工作目錄 add + commit )

  • 分享至 

  • xImage
  •  

1. 安裝環境

(1)右邊下載
https://git-scm.com/

(2)下載安裝完成
https://ithelp.ithome.com.tw/upload/images/20211226/201376842MzEMHum3w.png
Windows用Git bash

(3)測試看看有無安裝成功
CND > git version
https://ithelp.ithome.com.tw/upload/images/20211226/20137684ayrQDGb1JI.png


2. Windows - 命令提示字元

Git bash

(1) 移動路徑

$ cd c:
$ cd test (進入資料夾)
$ cd test/css (進入資料夾)
可以直接拖曳資料夾放cd 後

(2) 觀看資料夾內容

$ ls

(3) 回上一層( PS:是兩個.. 不是一個 . )

$ cd ..

(4) 新增資料夾

$ mkdir 資料夾名稱

(5) 新增檔案

$ touch index.html

使用Git為什麼不直接在命令提示字元下指令就好而要開啟git bash呢?
兩者其實是差不多的,git bash 有加上一些 linux 命令跟 git 一些內建指令
但實際上 98% 以上 git 功能都有,可以依照自己想用的來投入哩 :D


3. Mac - 命令提示字元

https://w3c.hexschool.com/git/fd6f6be
輸入關鍵字「終端機」或「terminal」,尋找到對應軟體後,按下 Enter
複製此指令「git --version」,並在終端機點選滑鼠右鍵,選擇「Paste」貼上後,按 Enter

MAC 的終端機不論你是用預設或者是 iTerm2 ,他都沒有預設高亮效果,
這裡則是使用 Oh My Zsh ,這裡也提供一個相關操作教學連結
https://gist.github.com/kevin-smets/8568070

https://ithelp.ithome.com.tw/upload/images/20211226/20137684cWFROf1GXX.png

(1) 移動路徑

cd c:
cd d:
cd test (進入資料夾)
cd test/css (進入資料夾)

(2) 觀看資料夾內容

ls

(3) 回上一層( PS:是兩個.. 不是一個 . )

cd ..

(4) 新增資料夾

mkdir 資料夾名稱

(5) 新增檔案

touch index.html

( 同windows 只差在$ [$電腦自動生成的,不用自己輸入] )


4. Git 初始環境設定

Sourcetree
一套提供不會下指令的人使用Git的介面(白話文XD)
https://ithelp.ithome.com.tw/articles/10209045

Sourcetree內可見版本控制,及編輯者資料
https://ithelp.ithome.com.tw/upload/images/20211226/20137684n9ylEeS44p.png

(1)查看git內容

git config --list
https://ithelp.ithome.com.tw/upload/images/20211226/20137684EP1Hm99Fxm.png

(1)編輯git內編輯者email資料

git config --global user.email "你的mail"

(1)編輯git內編輯者名字

git config --global user.name "你的名字"


5. git的大概流程圖~

https://ithelp.ithome.com.tw/upload/images/20211226/20137684o0YLLEeByj.png


6. git init - 安裝數據庫(本地數據庫)

安裝git 監控版本控制(master)
安裝完後會有個.git的隱藏資料夾

git init

https://ithelp.ithome.com.tw/upload/images/20211226/20137684pXENpJWVhA.png


7. 工作目錄、加入索引(add)、提交(commit)版本流程

https://ithelp.ithome.com.tw/upload/images/20211226/20137684E3H0cMwyTD.png

(1) 安裝數據庫
進去新建立的專案內安裝數據庫(.git)

git init

(2) 工作目錄內新增or編輯資料後,加入索引

git add . ( . = 全部檔案 )
git add a.txt (個別)

(2-1) 刪除索引 (尚未commit)

git reset HEAD (全部所以刪除)
git reset HEAD "檔案名稱"
git rm --cached "檔案名稱"

(3) 觀看哪些已加入索引(檢查狀態)

git status

https://ithelp.ithome.com.tw/upload/images/20211226/20137684cD6fwEjUDI.png
沒有加入索引的檔案會顯示紅字(資料夾內有資料才會顯示)

Q:
新增索引後出現No commits yet,後面commit跟查詢紀錄都可以使用,
是不是MAC跟Windows的git控制器會顯示不同?

A:
那句話意思只是和你說你目前沒有任何 commit 記錄提醒而已,
不是錯誤訊息哩,請不用擔心 :D

(4) 提交(commit)更新

git commit -m '輸入想增加的註解'

https://ithelp.ithome.com.tw/upload/images/20211226/20137684xviLwMwmaG.png

(5) 查詢紀錄
用來查看commit紀錄
mac 'q' 離開畫面

git log

(6) 查看有無編輯

git diff
git diff "file"(查看各別檔案)

結論:
a. 資料提交(commit)後,再編輯資料,可被檢查出被編輯(modified)了

git status
https://ithelp.ithome.com.tw/upload/images/20211226/20137684yxq7zGGCvW.png

b. 被索引(add)的資料提交(commit)後,被索引(add)的資料會被清空~~

git status

差異
https://ithelp.ithome.com.tw/upload/images/20211226/20137684jZzSwZunqU.png


8. gitignore - 忽略檔案

使用時機:不想要受到版本控制的檔案(暫存檔、帳號密碼等)

(1) 建立不要進版控的資料

touch .gitignore

(2) 內文新增欲忽略的檔案
ex:
index3.html
*.html ( 副檔名html的全部忽略 )
css/ ( css資料夾內資料全部忽略 )

(3) 此時新增index3.html檔案,並檢查(git status)尚未索引(add)的檔案
不會顯示.gitignore 內 不進版控的資料

git status

網路上各大神留下可以gitignore的檔案
https://github.com/github/gitignore


9. 還原檔案 *********************************************** 好用

(1) 恢復 單一檔案 到最新 commit 狀態

git checkout "檔案名稱"

(2) 還原工作目錄與索引(全部),會與最後一次 commit 狀態一樣
未commit的資料會消失

git reset --hard

還原檔案 vs. 取消索引(尚未commit)

git reset HEAD (全部所以刪除)
git reset HEAD "檔案名稱"
git rm --cached "檔案名稱"


10.指令大全

參考:
https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
https://backlog.com/git-tutorial/tw/reference/

基礎設定

查詢版本
git version
查詢設定列表
git config --list
輸入姓名
git config --global user.name "你的名字"
輸入email
git config --global user.email "你的email"

新增本地/遠端數據庫

在本地資料夾新增數據庫
git init
複製遠端數據庫
git clone 遠端數據庫網址

增加/刪除檔案

增加檔案進入索引
git add 檔案名稱
增加全部檔案進入索引
git add .
查詢狀態
git status
顯示歷史紀錄
git log
將索引提交到數據庫
git commit -m '更新訊息'

還原指令

還原工作目錄與索引,會跟最後一次 commit 保持一樣
git reset --hard
全部檔案取消索引
git reset HEAD
單一檔案取消索引
git reset HEAD 檔案名稱
恢復單一檔案到最新 commit 狀態
git checkout 檔案名稱
刪除最近一次 commit
git reset --hard HEAD^
上面語法如果刪除錯了可以再用此語法還原
git reset --hard ORIG_HEAD
刪除最近一次 commit,但保留異動內容
git reset --soft HEAD^
commit 後發現有幾個檔案忘了加入進去,想要補內容進去時
git commit --amend

分支

顯示所有本地分支
git branch
新增分支
git branch 分支名稱
切換分支
git checkout 分支名稱
合併指定分支到目前的分支
git merge 分支名稱
刪除分支
git branch -d 分支名稱

遠端數據庫操作

複製遠端數據庫
git clone 遠端數據庫網址
查詢遠端數據庫
git remote
將本地分支推送到遠端分支
git push 遠端數據庫名稱 遠端分支名稱
將遠端分支拉下來與本地分支進行合併
git pull

標籤

查詢標籤
git tag
查詢詳細標籤
git tag -n
刪除標籤
git tag -d 標籤名稱
新增輕量標籤
git tag 標籤名稱
新增標示標籤
git tag -am "備註內容" 標籤名稱

暫存

暫時儲存當前目錄
git stash
瀏覽 stash 列表
git stash list
還原暫存
git stash pop
清除最新暫存
git stash drop
清除全部暫存
git stash clear


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言