Git 簡單工作流,幫你快速使用 Git
安裝
Installing on Mac
通過 Homerew 安裝
brew install git
其它平臺安裝可以參考:Installing Git
建立新倉庫
建立新資料夾,進入,然後執行:
git init
檢出倉庫
// 從本地
git clone /path/to/repository
// 遠端伺服器
git clone [email protected]:/path/to/repository
工作流
本地倉庫由 git 維護的三棵 “樹” 組成。分別是:
工作目錄
:持有實際檔案快取區
: 它像個快取區域,臨時儲存你的改動HEAD
指向你最近一次提交後的結果
忽略某些檔案時,需要編寫 .gitignore
,比如:
/node_modules
/public/storage
/public/hot
/storage/*.key
/vendor
/.idea
Homestead.json
Homestead.yaml
.env
composer.phar
新增與提交
檢視狀態
git status
新增到暫存區
// 新增指定檔案
git add <filename>
// 新增所有檔案
git add *
// 添加當前目錄的所有檔案
git add .
提交暫存的區內容,納入版本管理
git commit -m "程式碼提交資訊"
檢視提交紀錄
// 顯示所有紀錄
git log
// 通過簡短的方式顯示
git log --oneline
推送改動
在提交到本地倉庫的 HEAD
中後,可以將這些改動提交到遠端倉庫:
git push origin master
master
你的遠端分支,當然可以任何分支
如果還有連線到某個遠端伺服器倉庫,可以使用如下命令新增:
git remote add origin <server>
分支
分支是用來將特性開發絕緣開來的。在你建立倉庫的時候,master
是 “預設的”。通常做法是在其他分支上進行開發,完成後再將它們合併到主分支上。
建立一個分支並切換到該分支
git checkout -b feature_x
// 你在此分支上進行開發...
完成工作切換回 master
分支
git checkout master
刪除不需要的分支
git branch -d feature_x
除非你將分支推送到遠端倉庫,不然該分支就是 不為他人所見的:
git push origin <branch>
更新與合併
pull
:更新你的本地倉庫至最新改動git pull
將會在你的工作目錄中
獲取(fetch)
並合併(merge)
遠端的改動merge
:合併其他分支到你的當前分支(例如master
):git merge <branch>
無論是 pull
還是 merge
操作,git
都會嘗試去自動合併改動。但自動合併並非次次都能成功,並可能導致 衝突(conflicts)
。 這時候就需要你修改這些檔案來人肉合併這些 衝突(conflicts)
。
改完之後,你需要執行如下命令以將它們標記為合併成功
git add <filename>
然後將合併的改動提交到版本控制
git commit -m “fix 衝突”
當然,在合併改動之前,也可以使用如下命令檢視兩者的不同之處:
git diff <source_branch> <target_branch>
替換本地改動
如果你對檔案有錯誤修改,可以實用命令替換掉本地改動
git checkout -- <filename>
此命令會使用
HEAD
中的最新內容替換掉你的工作目錄中的檔案。已新增到快取區的改動,以及新檔案,都不受影響。
git checkout -- <filename>
命令中的--
很重要,沒有--
,就變成了 “切換到另一個分支” 的命令
回退所有內容到上一個版本
git reset HEAD^
回退到某個特定的版本
git reset c7bf4e542fe368a1c1f558418fa19ad748480e80
將本地的程式碼回退到遠端的一樣
git reset --hard origin/master
標籤
軟體釋出時建立標籤,是被推薦的。這是個舊有概念,在 SVN
中也有。可以執行如下命令以建立一個叫做 1.0.0
的標籤:
git tag 1.0.0 1b2e1d63ff
1b2e1d63ff
是你想要標記的提交 ID 的前10
位字元。
使用如下命令獲取提交 ID:
git log
你也可以用該提交 ID 的少一些的前幾位,只要它是唯一的。
資源
版權宣告:自由轉載-非商用-非衍生-保持署名(創意共享3.0許可證)