Git 版本控制語法筆記
git基本操作篇
git初始化
使用Git必須要在你要管理的資料夾根部路初始化,使用Git終端機輸入
1 | git init |
git clone,從遠端複製到本地
複製一個遠端倉庫資料到當地,會複製所有內容,包含版本控制紀錄
1 | git clone [url] |
git add
將新增或修改文件添加到文件暫存區
1 | git add |
添加一個或多個文件到暫存區:
1 | git add [file1] [file2] ... |
添加指定目錄到暫存區,包括子目錄:
1 | git add [dir] |
添加當前目錄下所有變動的文件到暫存區:
1 | git add . |
接著可以查看文件狀態,已加入暫存區,或不在暫存區
1 | git status |
git commit
將檔案加入到暫存區後,要使用git commit來發布修改
1 | git commit -m [message] |
message,可以寫更改的備註,通常短而簡潔。
因為每次的改動,也不要太多太大量,保持習慣有小改動就發布git commit做紀錄,
方便未來有問題時回退或讓人容易了解改動。
若不想將暫存區全部推上可以使用
1 | git commit [file1] [file2] ... -m [message] |
修改最後一次commit內容
總是會不小心打錯字,或語意不清楚,希望重新修改commit的內容,但又不想退回版本時,可以使用
1 | git commit --amend --no-edit -m 'message' |
git 就會直接修改最後一次的 commit,而不會增加新的 commit。(版本號碼會變,但發布時間不會變動)
git reset
git reset 命令語法格式如下:
git reset [HEAD]
–mixed 為默認,可以不用帶該參數,用於重置暫存區的文件與上一次的提交(commit)保持一致,工作區文件內容保持不變。
git reset [commit版本號]
範例:
假設有三個版本
commit HEAD1 [當前]
commit HEAD2
commit HEAD3
1 | git log # 先查看版本,目前當前commit後面標示 HEAD -> [branch] |
查看遠端倉庫 git remote -v
新增遠端倉庫 git remote add
推送至遠端repository:git push [遠程主機名] [本地分支:遠程分枝名],如果遠程分枝名跟本地分枝名一樣可以省略
git rm
刪除檔案
1 | git rm [file] |
將檔案僅從暫存區移除,但還是保留此檔案
1 | git rm --cached <file> |
git remote
新增遠程倉庫[Repo]:
1 | git remote add [shortname] [url] |
顯示所有遠程倉庫
1 | git remote -v |
顯示某個遠程倉庫訊息
1 | git remote show [shortname] |
刪除定義好的遠程倉庫連結
1 | git remote rm [shortname] |
git fetch
假設今天我把檔案上傳到了Github,但發現有個小錯誤之類的,然後我直接在github網頁上改動了,這時候Github倉庫版本資料就和本地端不同了,
這時候要先使用 git fetch把遠端倉庫的數據抓下來比對(只對數據做比較,不抓檔案)。
1 | git fetch [shortname] |
可以看到最後一行 0205aab master -> origin/master
意思是 本地的master分支 與 遠端origin這個倉庫的 master 不一樣,有更新。
git merge
之後可以使用git merge來合併資料到本地當前分支,
git merge也可以用來合併本地分支
1 | git merge [shortname]/[branch] |
git pull
其實git pull就是 git fetch + git merge
1 | git pull <遠程主機名> <遠程分支名>:<本地分支名> |
將遠程主機 origin 的 master 分支拉取過來,與本地的 branch 分支合併。
更新操作範例:
1 | git pull origin master:branch # 如果遠程分支是與當前分支是同樣的話,則冒號後面的部分可以省略。 |
git push
git push 用來將本地的分支所有版本上傳到遠程並合併。
命令格式如下:
1 | git push <遠程主機名> <本地分支名>:<遠程分支名> # 如果本地分支名與遠程分支名相同,則可以省略冒號: |
如果要刪除遠端主機的分支可以使用 –delete 參數,以下指令表示刪除 origin 主機的 master 分支:
1 | git push origin --delete master |
git 分支管理
使用分支就可以從開發主線上分離開來,然後在不影響主線的同時繼續工作。
所以當再開發任何作業的時候
git branch
1 | git branch [name] # 創建分枝 |
git checkout
1 | git checkout [name] # 切換分枝 |
git merge
1 | git merge [branch name] # 合併分支 |