基本指令
init - 建立版本庫
add - 加入目前資料夾所有檔案到git
commit - 提交
1
| git commit -m "commit message"
|
remote - 設定git remote位置(git server)
設定
1
| git remote add origin https://github.com/e23882/test.git
|
查詢
刪除
1
| git remote remove RemoteName
|
同一個RemoteName可以設定多個GitRemote位置(一次push三個位置)
1 2 3
| git remote set-url RemoteName --push --add \\123.1.1.1\GitLocation1 git remote set-url RemoteName --push --add \\123.1.1.1\GitLocation2 git remote set-url RemoteName --push --add \\123.1.1.1\GitLocation3
|
Pull
指令 : git pull GitRemoteURL BranchName
1
| git pull original master
|
Push - 推送
指令 : git push -u
1
| git push -u original master
|
Log - 查看紀錄
看所有本地git紀錄
看指定數量本地git紀錄
指令 : git log -n <數量>
輸出log
指令 : git log -n 1 > [AbsolutePath]
1
| git log -n 1 > "D:\NeverRemove.txt"
|
一行顯示commit log
checkout - 切換branch
切換分支(Branch)
指令: git checkout [BranchName]
1
| git checkout LeoDerBranch
|
建立並切換分支 : git checkout -b [BranchName]
1
| git checkout -b LeoDerBranch
|
branch - 建立分支
指令 :
git branch
rm - 移除版控上檔案
1 2
| git rm -r -n --cached ./folder git rm -r --cached ./folder
|
reset - 復原
- hard
會把目前專案目錄都復原到某個版本
本地git回復到最新版本(目前本地最新的)
本地git復原到git remote最新版本
本地git回復到上一個版本(原本的那個版本就不見了)
回復到前n個版本(n之後的版本都不見了)
- soft
跟hard一樣,但是本地專案的檔案不會跟著復原,只有版控有變更而已
常用組合用法
顯示出某日區間所有異動檔案清單(會重複)
1
| git log --no-merges --pretty=format:\"%an_%ae|%s|%ad\" --name-only --since='2020/3/1' --until '2020/3/30' -- *.cs *.sql *.xaml > logs.txt
|
建立專案第一次初始化git、commit、push
1 2 3 4 5 6 7 8 9 10 11 12 13
| 初始化 git add . 看那些檔案加入commit git status 復原加入commit的檔案 git reset HEAD FileName git reset HEAD FolderName 提交 git commit -m "commit message" 設定GitRemote位置 git remote add original gitServerLocation Push git push -u original master
|
狀況:修改程式後commit > pull,pull時發現git remote已經發生異動
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| git add . git commit -m "update content" git pull 發生 : CONFLICT (content): Merge conflict in xxx.xx Automatic merge failed; fix conflicts and then commit the result.
解決方法: 取消git自動merge的動作, 這時候檔案會變成異動完,但是還沒merge,所以不會有衝突,要先解決衝突 git reset --merge
解決衝突(把有衝突的檔案移動到上一層,避免新改的code被復原成舊的版本) move file.txt .. git reset --hard HEAD~ git pull 這時候就沒有衝突了,可以在把移動到上一層的檔案人工合併到目前版控中的檔案 然後再push git add . git commit -m "commit content" git push origin master
|
刪除指定日期前的所有紀錄
1 2
| git replace git filter-branch
|