這里記錄一些 Git 在 Windows 操作系統下使用方法:
安裝完畢后,先讓Git 記錄自己的名字:
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
?
一、 創建版本庫
git 切換版本, 在要創建版本庫的文件夾空白處 右鍵打開菜單 選擇 "Git Bash Here" 選項來打開 類似 "命令行"的窗口
?
確定好目錄后 ?就可以利用 git init 把目錄變成倉庫
$ git init
Initialized empty Git repository in xxxxxxxxx
?
版本控制git、二、添加文件到倉庫
命令 ?$git add <file> 添加到倉庫, 然后 $git commit 提交到倉庫
$git add index.php
$git commit -m "添加修改注釋" //注釋部分很重要 必須
?
git回到指定版本命令,三、查看狀態
$git status //查看結果 ?
$git diff //查看修改部分
?
四、版本回退
git版本管理流程規范? $git log? //查看歷史記錄
$git reset --hard HEAD~1 //會退到歷史上上1個版本
$git reset --hard xxxxxxid //會退到ID為 xxxx 的版本
$git reflog? //獲取 Git 上操作記錄
?
git版本控制的原理。五、撤銷修改
$git checkout -- file? //撤銷修改 ?-- 前后都有空格 誤刪文件也可以回復
$git rm index.php //刪除文件的話 得運行一遍
?
?以上為本地部分的操作
git version? 網絡部分
六、遠程倉庫
$git remote add origin?git@github.com:xiaoyueguang/JavaScript-Libraries.git //將目前本地倉庫 連接到 遠程倉庫上
$git push -u origin master //推送 master 分支上所有的內容到遠程倉庫(第一次關聯的時候使用)
$git push origin master //推送 master 分支上最新的修改到遠程倉庫(本地修改提交后使用)
$git clone?git@github.com:xiaoyueguang/JavaScript-Libraries.git //將遠程倉庫 創建以該倉庫名的文件夾,復制內容到本地上。
$git pull origin master //拉取遠程倉庫上 master 分支的所有內容到本地倉庫里
?七、分支管理
分支是GIT非常重要的概念。每個人都會有不同的分支。
一般我都使用以下分支
master 為 主分支,是最穩定的.只有當 dev 開發分支上功能穩定的時候,合并到 master 分支上,并發布一個新版本。需要時刻同步。
dev 為 開發的分支,平時開發完成后將開發分支合并到該分支上。需要時刻同步。
issue 為 BUG 分支。修復 BUG 時創建該分支,修復完成后合并到 出 BUG 的分支上,并刪除該分支。不需要時刻同步。
feature 為 開發新功能分支。完成后合并到 dev 分支上并刪除。視情況而定(多人協作則時刻同步,另建分支合并上去。單人開發則無需時刻同步,直接合并到DEV分支上。)
gh-pages 為 github 主頁的分支(存放主頁內容)。
除此之外,每次開發新功能的時候應當創建一個新分支,完成后合并到 dev 分支上。
$git checkout -b dev //創建并切換到 dev 分支進行開發(切換分支后,本地倉庫內容都會有所變化),所以要 即時保存當前工作內容 或者 提交修改
$git branch //查看所有分支,當前分支前會有 * 號
$git branch dev //創建分支
$git merge dev //合并 dev 分支到當前分支?
$git branch -d dev //刪除分支
$git log --graph //查看分支合并圖
沖突:
有時候你開發的周期比較長,在你開發期間,團隊里有人提交了 commit ,會導致遠程倉庫的內容和你當前本地內容不一致,這時候合并會出現沖突!
當沖突出現的時候, GIT 會把內容放到一起, 在文件里 用 <<<<<<, >>>>>>, ====== 表示出不同分支的內容。
等我們手動解決后,再利用 ?git add、 git commit 來完成提交。
BUG:
當出現一個急需處理的BUG后,我們應當這么做
$git stash //保存當前的工作區(可保存多次)
$git status //查看工作區
$git checkout master //跳轉到出 BUG 的分支
$git checkout -b issue-101 //創建 BUG 分支
//做完相應的修改后,提交
$git checkout master //跳轉到出 BUG 的分支
$git merge -m "合并分支" issue-101 //合并分支
$git branch -d issue-101 //刪除 BUG 分支
$git stash list //查看工作區
$git stash apply //恢復工作區, stash內容還在
$git stash pop //恢復工作區,stash內容清空(建議采用此方法)
八、標簽管理
給當前狀態打個標簽,以后可以方便的查看該標簽的狀態。
$git tag V1.0 //在當前的 commit 上 新建一個標簽
$git tag -a V1.0 -m "標簽狀態" //指定標簽信息
$git tag -s V1.0 -m "PGP簽名"
$git tag //查看所有標簽
$git push origin V1.0 //推送本地標簽到遠程倉庫
$git push origin --tags //推送全部未推送過的標簽
$git tag -d V1.0 //刪除標簽
$git push origin :refs/tags/V1.0 //刪除遠程標簽
?
?
九、自定義 GIT
為了讓 GIT 更容易使用,我們可以自定義 GIT。
$git config --global alias.co checkout // co = checkout
$git config --global alias.br branch // br = branch
$git config --global alias.ci commit // ci =?commit
?