git 命令总结
git, 流行的分布式版本控制工具,全平臺支持。在windows下,打開git bash窗口,我們就可以像在linux終端中一樣,方便的輸入命令。
git結(jié)構(gòu)
git分為工作區(qū)和版本庫;工作區(qū)包括未修改和已修改(red) ;版本庫包括暫存(green)和分支
初始化
- git init 在當(dāng)前目錄初始化git
- git add /./* 添加文件/當(dāng)前目錄所有文件到暫存區(qū)
- git commit -m “描述信息” 提交到版本庫
- git status 查看工作區(qū)狀態(tài)
- git diff 查看修改內(nèi)容
stash
使用場景:新功能開發(fā)中,上線版本出現(xiàn)bug,需要放下手頭的開發(fā),緊急修復(fù)bug
- git stash 將工作區(qū)的文件放到某個地方,還原當(dāng)前版本未操作狀態(tài)
- 處理bug –> git add . –> git commit -m ‘修復(fù)bug完畢’
- git stash pop 將之前暫停的開發(fā)狀態(tài)還原。這時原來的bug也修改好了。(內(nèi)部做了一個合并,將修改bug后的版本和暫存的工作內(nèi)容合并)。如果執(zhí)行g(shù)it stash pop, 有時會報CONFLICT,合并沖突,只是因?yàn)槌霈F(xiàn)了對同一文件的不同修改。這時需要手動解決沖突,然后提交。
為了防止出現(xiàn)大量沖突的情況,應(yīng)以預(yù)防為主,每天開發(fā)就結(jié)束時,執(zhí)行合并,這樣每次沖突比較少。
stash相關(guān)命令:
- git stash pop 將第一個記錄拿回工作區(qū)
- git stash list 查看所有存儲記錄
- git stash clear 清空所有記錄
- git stash apply 將指定記錄拿回工作區(qū)
- git stash drop 刪除指定記錄
撤銷/回滾
- git log 查看提交歷史
- git reflog 查看命令歷史,通過它可以查到所有的版本記錄,方便在過去和未來切換版本
- git reset –soft commit_id 分支 –> 暫存
- git reset head 暫存 –> 工作區(qū)(修改過的內(nèi)容)
- git checkout – 工作區(qū)(修改過的內(nèi)容) –> 原內(nèi)容
- git reset –mix commit_id 分支 –> 工作區(qū)(修改過的內(nèi)容)
- git reset –hard commit_id 版本回退
分支管理
通常在實(shí)際的開發(fā)中,我們會創(chuàng)建多個分支,以方便管理開發(fā)。比如:
- master 線上穩(wěn)定版版本
- dev 開發(fā)版本
- review 審核版
通常在dev分支上開發(fā)并提交,開發(fā)完成后,切換至master分支,合并dev分支(可能要手動解決沖突)。
管理分支的命令如下:
- git branch dev 新建dev分支(拷貝當(dāng)前分支代碼到新分支)
- git checkout dev 切換dev分支
- git checkout -b 創(chuàng)建并切換到指定分支
- git branch 查看所有分支
- git merge 分支名稱 將指定分支合并到當(dāng)前分支
- git branch -d 分支名稱 刪除分支
利用分支管理解決bug:
dev開發(fā)中 – 線上bug – 切master – 新建bug分支 –處理bug,提交 – 切master, 合并bug分支 – 切dev, 繼續(xù)開發(fā), 提交 – 切master, 合并 – 自動將修改bug后master和dev合并 – 可能有沖突,手動解決沖突,合并
打標(biāo)簽
- git tag v1.0 默認(rèn)在打在當(dāng)前分支的最新提交上
- git tag v0.9 commit_id 為指定commit_id打標(biāo)簽
- git tag 查看標(biāo)簽(字母排序)
- git show 查看標(biāo)簽信息
- git tag -a -m ‘comments’ 創(chuàng)建帶有說明的標(biāo)簽
- git push origin 可以推送一個本地標(biāo)簽;
- 命令git push origin –tags可以推送全部未推送過的本地標(biāo)簽;
- 命令git tag -d 可以刪除一個本地標(biāo)簽;
- 命令git push origin :refs/tags/可以刪除一個遠(yuǎn)程標(biāo)簽。
github遠(yuǎn)程倉庫
Git支持多種協(xié)議,包括https,但通過ssh支持的原生git協(xié)議速度最快。
- git remote add origin https/ssh地址 添加遠(yuǎn)程倉庫;origin是遠(yuǎn)程地址的別名,自定義也可以;
- git remote -v 查看遠(yuǎn)程庫的詳細(xì)信息
- git push origin master 輸入用戶名密碼,提交master到遠(yuǎn)程origin
- git clone url 遠(yuǎn)程克隆到本地;這時遠(yuǎn)程倉庫沒有別名,默認(rèn)就是’origin’, 通過vim .git/config 可以查看別名和地址,也可以直接修改。
- git pull 別名 master 將遠(yuǎn)程master上變化的部分拉到本地工作區(qū);如果git pull提示“no tracking information”,則說明本地分支和遠(yuǎn)程分支的鏈接關(guān)系沒有創(chuàng)建,同過如下命令創(chuàng)建連接關(guān)系:
- git branch –set-upstream branch-name origin/branch-name
- git pull 命令也可以通過如下命令完成類似效果:
- git fetch origin master 遠(yuǎn)程分支拿到本地分支(分支名為:origin/master)
- git merge origin/master 合并分支
總結(jié)
- 上一篇: 部署应用程序
- 下一篇: 安装目录opencv for andro