iT邦幫忙

1

Git Local & Basic command

Git又稱作 vesion control system 是一個版本控制系統,當我們在做一個project、files的時候,可以由多人,不同地點,不同時間去編輯同一個file。

而他也可以有不同的Branch(分支),也就是有不同的開發線,而主Branch又稱作master branch,比如每個人在同一個file去做複製貼上出一個新的file,利用這個新的file去做edit,此動作可避免影響到初始file,完成後再利用merge去做合併,讓所有人都可以去修改同一個file。

且我們可以查詢到所有人修改的紀錄(包括自己),這個修改是誰做的?為什麼這個人這樣做?什麼時候做的?

而Git主要可以分為三個區塊:

工作目錄(Working Directory)」、「暫存區(Staging Area)」以及「儲存庫(Repository)。

Working Directory:就是我們在local正在操作的東西,在這個區塊的東西,尚未保存,故較容易修改以及刪除。

Staging Area:也是在local,且是我們想保存下來的東西,並準備要傳送至Repositroy儲存庫。

Repository:就是每次提交(commit)版本放置的區域。

而我們在Working Directory需透過git add 指令才能將file從工作目錄移至暫存區(or call index)。
而在Staging Area需透過git commit指令把暫存區的內容移至儲存庫。
大致上是這麼一個流程

如下圖:

https://ithelp.ithome.com.tw/upload/images/20200529/20126182xlSp2mMJF9.png

而這裡有幾個Git常用的command:

pwd:可顯示當前目錄路徑

cd:到指定路徑,如cd D:\

cd .. :可回到上一層目錄

code .:到指定路徑下的資料夾並快速開啟vs code。

touch:能夠新建檔案。

mkdir:用來新建資料夾。

rm:用來刪除檔案或資料夾。

echo:可將字串輸出至指定文件 ex:echo "test test" > test.txt

cat:可查找指定資料的內容 ex:cat test.txt

vim:可開啟指定路徑的檔案,開啟後,按下i進行編輯,要退出時,按下ESC並加上:wq即可

https://ithelp.ithome.com.tw/upload/images/20200529/20126182uixWpJQcfc.png

git config --global(user.name , user.email):在每次使用git進行版本管理時,送出修改的紀錄,告訴git我是誰,如何聯繫我,也讓別人在操作時,知道這是誰修改的。

而輸入完成後,在C槽=>USER下就可發現已新增一個名為.gitconfig的file,利用vscode打開,
即可顯示我們所輸入的資料。

https://ithelp.ithome.com.tw/upload/images/20200529/20126182S9nQjN0kdL.png

git config -l:可查看當前配置如user.name,email等。

https://ithelp.ithome.com.tw/upload/images/20200529/20126182ziJjhkzDee.png

git init (資料夾名稱):初始化代碼倉庫。一般情況不會去更動.git裡面的文件

https://ithelp.ithome.com.tw/upload/images/20200529/20126182EKb4ZgZK6Q.png

ls -la:可在初始化代碼倉庫下,看到ls看不到的資料,此處-開頭的為file其餘為folder。

https://ithelp.ithome.com.tw/upload/images/20200529/2012618218fNpRZ7fh.png

find ./ -[i]name jojo.txt:find可尋找特定檔案,例如找尋檔名為 jojo.txt 的檔案。i 表示不分大小寫。

git add:可將指定要commit的文件儲存到git中的Index資料夾,也就是我們staging area中
git add * 可全部都儲存,git add test.txt test2.txt 加上空格可一次儲存多個。
git add *:不會添加.開頭的檔案 ex: .gitignore,所以要直接 git add .gitignore

https://ithelp.ithome.com.tw/upload/images/20200529/20126182cVwTiuA1na.png

.git/index(此非command而為路徑):通過git add保存當前對文件或資料夾的改變,並儲存到index,一次只會儲存一個改變,而去commit,他就只會送出這個改變,也就是我們的index。

而透過find查詢.git下的file多了一個為index的folder,就是用來儲存我們的修改,

https://ithelp.ithome.com.tw/upload/images/20200529/20126182dBVJ78Opxd.png

git status:查詢當前檔案狀態。

透過git status發現,如果有git add進去修改的資料,會顯示 new file : test2.txt,如果只有創建或改變但還沒有git add進去會顯示 modified : test1.txt 代表不會送出修改後的資料。

查詢出修改後但還沒git add進去還在working directory的文件(下圖)

https://ithelp.ithome.com.tw/upload/images/20200529/20126182Lz3D9sYDhu.png

已經git add進去準備commit的file(下圖)。
https://ithelp.ithome.com.tw/upload/images/20200529/201261824RkhIdXm5F.png

git log:可以查詢commit的紀錄。
git log --stat:詳情顯示commit 紀錄。
git log --after/before = "2020-06-30": 可查詢指定日期之前或之後的紀錄。

https://ithelp.ithome.com.tw/upload/images/20200706/20126182FvjcKLQ3ST.png

git commit:可送出我們所改變的資料,而在後面加上-m,git commit -m "add line 3" 可附加訊息,來說明這次送出的東西是什麼,使用 git log去查詢 commit history,有HEAD的紀錄為最新的紀錄。

https://ithelp.ithome.com.tw/upload/images/20200529/20126182ZTZuppwoUh.png


尚未有邦友留言

立即登入留言