玩家自制《最終幻想7:重製版》勞拉mod 代替蒂法
git本地倉庫操作
建立本地倉庫
git init
就會將當前目錄變成一個git倉庫,同時當前目錄也會有個.git
的目錄。
預設用
master
作為本地分支的名字,可以通過git branch -m <name>
命令修改當前分支的名字。當前執行
git branch
是檢視不到當前的master
分支的,那是因為當前我們還沒有執行git commit
操作。
git add a.txt
就可以將a.txt
新增到暫存區。
git commit -m [日誌]
將暫存區的所有檔案提交到本地庫。
git commit -m [日誌] [file]
將暫存區的指定檔案提交到本地庫。
執行git status
這時我們再執行git branch
就可以看到當前的master
分支了。
分支切換
git checkout [分支名]
可以切換分支。但是如果對應分支不存在的話,那就會報錯。
git checkout -b [分支名]
如果分支不存在,那就需要新增-b
引數,建立分支並切換。
git branch [分支名]
建立分支,但不切換分支
git branch
、git branch -va
檢視所有分支
刪除分支
git branch -d [分支名]
分支合併
比如將dev
分支的修改合併到master
分支。
git checkout master
切換到master
git merge dev
就可以將dev
分支的內容合併到master
分支
衝突處理:
如果在合併分支過程中提示有衝突那就需要做如下處理。
如果當前衝突的是是一個文字檔案,比如檔名是
a.txt
。那開啟檔案,將衝突的內容修改掉。重新執行git add a.txt
,git commit -m "xxx"
重新提交就可以了。如果當前衝突的是二進位制檔案,比如檔名是
a.so
,這就不能通過手工的方式將它合併了。那就可以執行下面的命令
git checkout a.so --ours
或者git checkout a.so --theirs
選擇保留一個分支的,捨棄另一個分支的。
--ours
表示檢出當前分支,即合併後儲存當前分支的改動而丟棄另外一個分支的改動。
--theirs
表示檢出另外一個分支,即儲存另外一個分支的改動丟棄當前分支的改動。重新執行
git add a.so
,git commit -m "xxx"
重新提交就可以了。
刪除檔案
從本地庫中刪除a.txt
git rm a.txt
這會將這個刪除操作提交到暫存區,也會本地刪除a.txt
這個檔案。如果想保留本地的檔案不被刪除,那就需要新增--cache
引數。對應的命令就是git rm a.txt --cached
git commit -m "delete a.txt" 將這次刪除提交到本地庫
從暫存區中刪除a.txt
git restore --staged a.txt
還原檔案
如果檔案a.txt
已經修改了,但是之前我們已經新增到暫存區或者已經提交到了本地庫,現在想還原a.txt
從暫存區中還原:
git restore a.txt
從本地庫中還原:
git reset a.txt
執行完這個操作a.txt並沒有被還原。主要是為了避免本地工作區中的修改丟失。
git restore a.txt
繼續執行完這個操作後就可以將本地庫中最新的a.txt
還原到工作區
要還原本地庫中之前提交的版本:
git log a.txt
檢視檔案提交記錄,獲取commit id
git reset [commit id] a.txt
還原指定版本
git restore a.txt
git checkout a.txt
也可以還原a.txt。如果暫存區有,就還原暫存區的,否則就還原本地庫的。這個命令還是比較危險的,會將當前工作區中的檔案直接覆蓋掉。
檢視歷史提交日誌
git log
檢視歷史提交日誌,如果有版本回退,回退版本之後的歷史提交日誌這個命令是看不到的。
它有好多種格式化輸出形式git log --graph --pretty=oneline
、git log --oneline
等等。
git reflog
也可以檢視歷史提交日誌。與git log
不同的是它會顯示所有歷史提交記錄,包括回退版本之後的。
常用的形式git reflog show
版本回退
git reset --hard [區域性索引值]
回退到指定版本
git reset --soft [區域性索引值]
git reset --mixed [區域性索引值]
soft 僅僅在本地庫中移動head指標
mixed 在本地庫移動head指標,同時重置暫存區
hard 在本地庫移動head指標,同時重置暫存區、重置工作區
使用^符號只能後退
git reset --hard HEAD^
一個^表示後退一步,n個表示後退n步
使用~符號:只能後退
git reset --hard HEAD~n
表示後退n步
將當前修改儲存到堆疊區
git stash
將當前的修改儲存在堆疊區
git stash save [日誌]
將當前的修改儲存在堆疊區
git stash list
檢視當前所有的堆疊區儲存列表
git stash pop
還原最近的stash。同時從堆疊區中刪除。
git stash pop [數字]
還原指定stash。同時從堆疊區中刪除。
git stash drop [數字]
刪除堆疊區中指定stash。
git stash show
顯示最近堆疊區和工作區的差異.git stash show -p
可以顯示更詳細的內容。
git stash show [數字]
、git stash show -p [數字]
比較堆疊區中指定的stash和工作區
git stash clear
清空
比較檔案差異
git diff [file]
將工作區的檔案和暫存區的比較git diff [本地庫中的歷史版本] [file]
將工作區中的檔案和本地庫歷史記錄比較
不帶檔名比較所有差異檔案
遠端倉庫操作,如github
克隆遠端倉庫
git clone [遠端倉庫地址]
命令可以將遠端倉庫及所有分支都克隆下來。同時會在本地庫建立master分支,與遠端庫的master
分支關聯
本地倉庫與遠端倉庫關聯
git remote add [遠端倉庫別名] [遠端倉庫地址]
將本地倉庫與遠端倉庫關聯。
本地倉庫可以關聯多個遠端倉庫
git remote -v
可以檢視本地庫關聯的遠端庫的資訊。這裡
本地倉庫與遠端倉庫斷開關聯
git remote rm [遠端倉庫別名]
將本地倉庫與遠端倉庫斷開關聯
將本地庫內容推送到遠端倉庫
git push [遠端倉庫別名] [本地倉庫分支名]
將本地倉庫對應分支推送到遠端倉庫,如果遠端倉庫沒有與本地對應分支名,就會在遠端倉庫建立一個對應分支。
如我本地有個dev
分支。執行 git push origin dev
就會將本地dev
分支的內容推送到遠端倉庫dev
分支,如果遠端倉庫沒有dev
分支,就會在遠端倉庫建立個dev
分支。
git push [遠端倉庫別名] [本地倉庫分支名]:[遠端倉庫分支名]
我本地有個dev
分支。執行 git push origin dev:odev
就會將本地dev
分支的內容推送到遠端倉庫odev
,如果遠端倉庫沒有odev
分支,就會在遠端倉庫建立個odev
分支。
如果本地分支與遠端倉庫分支名字相同,可以新增
-u
引數將其設定為預設推送、拉取分支,以後就可以直接使用git push
進行推送,使用git pull
之類的拉取。如使用
git push -u origin dev
將本地dev
分支推送給遠端倉庫dev
分支,同時將遠端dev
設定為預設推送分支。以後推送就可以直接使用git push
、git pull
了。
從遠端倉庫拉取程式碼
git pull [遠端倉庫別名] [遠端倉庫分支名]:[本地分支名]
將遠端倉庫 的 對應分支拉取過來,與本地的分支合併。
git pull
如果之前本地庫分支與遠端庫分支已經關聯過,那就可以直接使用這個命令拉取。
git fetch [遠端倉庫別名]
將遠端倉庫的程式碼拉取到本地,注意,這裡只是拉取下來,並沒有和本地庫合併。
git merge [遠端倉庫名]\[遠端分支名]
將git fetch
拉下來的程式碼,指定遠端分支與本地當前分支程式碼合併。
刪除遠端倉庫分支
git push [遠端倉庫別名] --delete [遠端倉庫分支名]