我正在参与「启航计划」
1.布景
已经手把手教同事很多遍操作进行git的操作,可能是由于没认真记笔记 or 真英语不行,每次提交PR代码或者遇到git上的一些bug都要进行问询,并手把手的帮他处理其时的问题,我说你遇到git不必怕,干便是了,主旨便是不要干掉长途别人的代码,然后其时在你的本地的项目的代码能够完美的运行功能就OK了,之前我踩过比你严重的坑都遇到过,直接写一下遇到的项目中遇到的问题吧。
2.自己呈现的bug问题
直接上之前遇到的在公司项目运用的办理平台是tfs,我也不是很懂怎样合分支呈现的bug 我其时用的是 github 出品的桌面版东西 github desktop,在兼并处理抵触的时候,呈现了文件丢掉的情况
呈现的原因如下:
-
因丢掉的那些代码从未提交过上gitLab
-
处理抵触文件时,可能不小心点到某按钮导致
-
丢掉的代码也未做过备份,也未提交过master的分支上
怎样处理?参考文章:# 本地代码丢掉,怎样找回未提交过的代码,踩坑日记 git代码办理
看了下文章,git会在.git这个躲藏文件夹下面 /object 会生成一些文件,并以两个字符串即’数字+字母’ or ‘字母+字母’ 可能还是 ‘字母+字母的组合’,里面的文件是一些加密的文件
经过以下的bash指令找到文件所对应的内容:
git cat-file -p 文件夹名文件名
一个文件一个文件找应该比较慢,由于对读文件夹称号及读对应的文件名不熟悉,我觉得有个更方便的方法应该是用powershell应该能够做到多条进行读取,读对应这个文件夹的称号 + 文件名,遍历即可。
3.怎样创立文件夹并相关长途库房和创立本地库房,以下两种方法
第一种方法
第一步:根据master分支并创立了本地分支和长途分支(但是未推送并不会在长途创立分支)
# 初始化库房
1. git init
# [https...]项目地点长途库房地址(不是长途分支称号,而是库房地址)
2. git remote add origin [https....]
git remote add origin [库房称号]
# 拉取长途分支到本地,fetch origin(拿来)
3. git fetch origin master(dev是你要拉取的长途分支称号)
# 在本地创立dev分支而且切换到该分支
4. git checkout -b createFollow(本地分支称号)
# 拉取分支到本地
5. git pull origin master(长途分支称号)
第二步:推送代码到长途并创立分支,可采取以下两种方法的其中一种
1).
# 增加文件到暂存区
git add .
# 推送库房分为createFollow
git pull origin createFollow
2).
# 强制推送到长途分支并树立长途分支
git push --set-upstream origin znn
如图所示,分支就已经set up 从origin(源文件,长途库房)
第二种方法
如图所示
tips:要了解上面的相关内容为什么能够这样子操作,弄懂下面这篇文章根本了解:
# 细读 Git | 弄懂 origin、HEAD、FETCH_HEAD 相关内容
4.git 遇到eslint不给提交给长途怎样办?
能够参考下以下完整的项目花裤衩大佬的后台办理体系下的 .eslintrc.js文件
"vue/no-unused-components":"off",//当存在未定义而未运用的组件时,封闭报错
"no-unused-vars":"off"//当存在未定义而未运用的组件时,封闭报错
并参考文章# 【前端】vue项目 git提交失败 running pre-commit hook:lint-staged
5.怎样兼并代码并处理抵触
步骤如下:
东西计划进行merge
- 最简略便是用github desktop,熟悉东西的人应该都知道这个界面,点击东西中心的按钮,点击弹出界面最下方有一个很长的按钮 choose a branch to merge into 分支称号,中文的意思是兼并你选择的一个分支到你这个分支下。
- 选择完上面的分支 并点击下方长按钮, 下方会有’1 conflicted file’ 即有1个抵触的问题,当你兼并master分支到testGitfollow分支上 ,点击相应的分支进行兼并,并点击下方的create a merge commit,就完事了,处理抵触,经过github desktop + vscode配合着一起运用
- 看图,在vscode编辑器里面,HEAD是其时分支这片代码的内容,下方master便是来历的分支,即所需求merge的分支 用了 <<< 和 === 和 >>> 区别,相关的符号如下解说:
- <<<代表 其时分支
- ===代表 分隔符
- <<<代表 来历分支,即要兼并的分支
4. 根据里面代码 我们能够点击上方的Accept Both Change 即可兼并了代码了,兼并完,回到github desktop,发现后面按钮变绿了,再点击 continue merge
- 最后一步在主界面点击push origin
- 等操作的loading滚动完就大功告成了。
git指令计划进行merge(git bash)
怎样test1分支的代码兼并test2分支的代码?
- 怎样创立文件夹并相关长途库房和创立本地库房,以下两种方法 app端应该打不开该链接,能够上滑去看看
- 提交本地代码到长途的分支
tes1分支
git add README.md
git commit -m 'test1'
git push origin test1
- 拉取要兼并分支的代码
git stash # 检查下test1分支
git checkout test2
git pull
- 切换到test1分支,并兼并test2分支
git checkout test1
git stash pop
git merge test2
- 处理抵触(直接打开vscode的项目 有对应的文件名抵触,处理抵触方法和上方方法东西计划相同)
处理完抵触
git push origin test1
这就大功告成了
6.怎样回退版别
运用到的指令
git log----检查提交记载
git log --pretty=oneline----检查提交记载简略信息
git reset --hard HEAD^----回滚至上一个版别,可丢掉暂存区修正
git reset --hard 提交的id-----回滚至指定版别
参考文章
Git回退版别方法
7.怎样删去长途分支
# 检查长途分支,上方的是本地的分支,下方的检查的是长途的分支(下方的会有相应的颜色)
git branch -a
# 切换到master分支,应该是master分支才有权限去删去对应的分支
git checkout master
# 删去长途分支 后面new_a是分支称号
git push origin --delete new_a
有时候有可能要输入账号和暗码,输入即可
8.git常用指令以及提交前缀
git常用指令
- git init——-初始化一个库房
- ssh-keygen -t rsa -C “youremail@example.com”——-生成ssh公钥
- git add . ——增加文件到暂存区
- git commit -m ‘提交阐明’ —–提交暂存到其时分支
- git clone 项目地址 —-从长途库克隆项目
- git remote add gitee2git@gitee.com:divhub/ErJieDuan.git —相关一个长途库房
- git branch—–指令会列出一切分支,其时分支前面会标一个*号
- git remote -v —–检查长途库房
- git remote remove origin —–删去长途库房
- git push 长途分支名 master —–提交本地分支到长途
- git pull 长途分支名 本地分支名 —–拉取分支
- git push -f gitee2 master —–强制提交掩盖长途分支
- git config –global user.name “***” —-本地用户名
- git config –-global user.email “*****”—–本地邮箱
- git config user.name —–检查用户名
- git config user.email —–检查邮箱地址
- git branch -a—–检查一切分支
- git branch -d 分支名—–删去一个本地分支
- git branch –v —–检查本地一切分支对应的长途分支运用指令
- git branch –set-upstream-to=origin/dev dev 本地分支相关长途分支
- git branch -help —–检查指令行参数
- git checkout 分支名—–切换到某分支
- git log—-检查提交记载
- git log –pretty=oneline—-检查提交记载简略信息
- git checkout — 文件名—–丢掉工作区修正
- git reset –hard HEAD^—-回滚至上一个版别,可丢掉暂存区修正
- git reset –hard 提交的id—–回滚至指定版别
- git rm ——删去文件
- git checkout -b 分支名 ——创立一个分支并切换到该分支
- git merge 分支名—–兼并指定分支到其时分支
- git config -l — 检查现在的git环境具体装备
- git status –用于检查在你上次提交之后是否有对文件进行再次修正。
- git fatal: 拒绝兼并无关的历史
- 处理方法是:答应其兼并历史。只需求在分支名后加上:–allow-unrelated-histories 即可(留意是两个中划线);
git提交前缀
- build:表明构建,发布版别可用这个
- ci:更新 CI/CD 等自动化装备
- chore:杂项,其他更改
- docs:更新文档
- feat:常用,表明新增功能
- fix:常用:表明修正 bug
- perf:功能优化
- refactor:重构
- revert:代码回滚
- style:样式更改
- test:单元测试更改