git
git三種狀態(tài)
- 工作區(qū) 添加的文件 未使用git add前十在工作區(qū)
- 暫存區(qū) git add 后會(huì)放入到暫存區(qū)
- 版本庫 git commit 后會(huì)放入到版本庫
- git push 推送到遠(yuǎn)程倉庫
gitlab使用
- 創(chuàng)建用戶
- 創(chuàng)建項(xiàng)目岳瞭,new project
- ssh-keygen -t rsa -C 'xxx@xx.com'
- cat ~/rsa.pub
- 復(fù)制sshkey
- 在settings ssh key 加上自己的key
- 管理員在后臺(tái)通過后該賬號(hào)可以登錄使用gitlab
- 用戶在登錄頁面進(jìn)行注冊
- 點(diǎn)擊上方扳手华坦,點(diǎn)擊左側(cè)users嘉栓,可以看到注冊的人蒸走,然后給每個(gè)人驗(yàn)證通過
- 通過以后聘鳞,才能登錄
- 在項(xiàng)目里增加成員 點(diǎn)擊項(xiàng)目->members下 增加成員 賦權(quán)限
- guest 創(chuàng)建項(xiàng)目、寫留言薄
- reporter 創(chuàng)建項(xiàng)目鹊碍、寫留言薄乃摹、拉項(xiàng)目、下載項(xiàng)目赢乓、創(chuàng)建代碼片
段 - developer 創(chuàng)建項(xiàng)目忧侧、寫留言薄、拉項(xiàng)目牌芋、下載項(xiàng)目蚓炬、創(chuàng)建代碼
片段、創(chuàng)建合并請求躺屁、創(chuàng)建新分支肯夏、推送不受保護(hù)的分支、移除不受保護(hù)的分
支 、創(chuàng)建標(biāo)簽驯击、編寫wiki - master 創(chuàng)建項(xiàng)目烁兰、寫留言薄、拉項(xiàng)目徊都、下載項(xiàng)目沪斟、創(chuàng)建代碼片
段、創(chuàng)建合并請求暇矫、創(chuàng)建新分支主之、推送不受保護(hù)的分支、移除不受保護(hù)的分
支 李根、創(chuàng)建標(biāo)簽槽奕、編寫wiki、增加團(tuán)隊(duì)成員房轿、推送受保護(hù)的分支粤攒、移除受保護(hù)
的分支、編輯項(xiàng)目囱持、添加部署密鑰夯接、配置項(xiàng)目鉤子 - owner 創(chuàng)建項(xiàng)目、寫留言薄洪唐、拉項(xiàng)目钻蹬、下載項(xiàng)目、創(chuàng)建代碼片
段凭需、創(chuàng)建合并請求问欠、創(chuàng)建新分支、推送不受保護(hù)的分支粒蜈、移除不受保護(hù)的分
支 顺献、創(chuàng)建標(biāo)簽、編寫wiki枯怖、增加團(tuán)隊(duì)成員注整、推送受保護(hù)的分支、移除受保護(hù)
的分支度硝、編輯項(xiàng)目肿轨、添加部署密鑰、配置項(xiàng)目鉤子蕊程、開關(guān)公有模式椒袍、將項(xiàng)目轉(zhuǎn)
移到另一個(gè)名稱空間、刪除項(xiàng)目
新手操作流程
- 配置ssh key
- 添加ssh key
- git config --global user.name 'xx'
- git conifg --global user.email 'xxx'
- 克隆項(xiàng)目 git clone xxxx 或者 git add remote
- 新建自己的分支 git checkout -b mafaxin_branch
- 修改代碼
- git add .
- git commit -m 'xxx'
- git push origin mafaxin_branch // 將本地的mafaxin_branch 推送到遠(yuǎn)端的mafaxin_branch
- git branch -a 查看所有倉庫
分支合并
將mafaxin_branch 合并到master分支
- git checkout master 切換到master分支
- git merge mafaxin_branch 將 mafaxin_branch 分支合并到mafaxin_branch分支
- git push origin master 將本地的master分支推到主干的master分支
- git branch -d mafaxin_branch 刪除本地分支
git創(chuàng)建分支
- git checkout -b new_branch 創(chuàng)建分支并切換到分支
- git branch -a 查看所有分支
- git add .
- git commit -m ''
- git push origin new_branch 發(fā)布到分支
- git branch -d 分支名 刪除分支
- git config --global user.name ""
可視化工具
- git ui
- 小烏龜
- sourcetree
gitflow
- master分支 藻茂,master分支的內(nèi)容可以直接發(fā)布到線上
- dev分支驹暑,開發(fā)分支玫恳,卡發(fā)著拉取和提交代碼都要提交到這個(gè)分支
- 從dev分支分出 releash分支,預(yù)發(fā)布分支优俘,在release版本上進(jìn)行bug修復(fù)京办,修復(fù)完成后,合并到master分支(進(jìn)行上線)和dev分支(進(jìn)行bug的同步)
- hotfix分支帆焕,線上的bug惭婿,打一個(gè)hotfix分支進(jìn)行修復(fù),在合并到主干和dev
gitflow 工作流過程, 新員工接入
- 默認(rèn)只有master分支
- 創(chuàng)建develop分支
- git checkout -b develop
- git push origin develop
- 克隆項(xiàng)目
- git clone xxx.git
- 切換到develop分支 git checkout develop
- 基于develop分支創(chuàng)建feature/xxx分支 并奇幻到feature/xxx 分支
- git checkout -b feature/xxx develop
- 做功能開發(fā) 完成
- 切換到develop分支 git checkout develop
- 更新develop分支 git fetch/pull origin develop
- 將開發(fā)完的代碼feature/xxx 分支合并到develop分支视搏, git merge feature/xxx
- 發(fā)布都遠(yuǎn)端 git push
- 刪除功能分支 git branch -d feature/xxx
預(yù)發(fā)布版本創(chuàng)建
- 先創(chuàng)建一個(gè)release-0.1的分支 git checkout -b releash-0.1 develop
- 對release-0.1分支進(jìn)行測試
- 合并release-0.1到master
- git checkout master
- git merge release-0.1
- 推送到遠(yuǎn)端 git push
- 合并release-0.1到develop分支
- git checkout develop
- git merge release-0.1
- 推送到服務(wù)器 git push
- git branch -d release-0.1 這里刪除了分支
- git tag -a 0.1 -m 'release 0.1' master 添加標(biāo)簽
- git push --tag
線上bug修復(fù)
- git checkout -b issue-001 master 創(chuàng)建bug修復(fù)分支
- git checkout master
- git merge issue-001
- git push
- git checkout develop
- git merge issue-001
- git push
- git branch -d issue-001
版本回滾
- git reset --hard/soft commit_id
- git log查看 commit_id
- 使用soft的話审孽,本地代碼還會(huì)存在县袱,push的時(shí)候會(huì)把遠(yuǎn)端的回滾
- git push origin master --force 推送到遠(yuǎn)端
- git revert 'commit_id'
- 這個(gè)cmmit_id是git log 中 要回滾到的那個(gè)版本的上一個(gè)commit id
- 用一次新的提交來實(shí)現(xiàn)回滾浑娜,會(huì)增加一次提交
- reset是真的回滾