我正在参与「启航计划」

1.布景

已经手把手教同事很多遍操作进行git的操作,可能是由于没认真记笔记 or 真英语不行,每次提交PR代码或者遇到git上的一些bug都要进行问询,并手把手的帮他处理其时的问题,我说你遇到git不必怕,干便是了,主旨便是不要干掉长途别人的代码,然后其时在你的本地的项目的代码能够完美的运行功能就OK了,之前我踩过比你严重的坑都遇到过,直接写一下遇到的项目中遇到的问题吧。

2.自己呈现的bug问题

直接上之前遇到的在公司项目运用的办理平台是tfs,我也不是很懂怎样合分支呈现的bug 我其时用的是 github 出品的桌面版东西 github desktop,在兼并处理抵触的时候,呈现了文件丢掉的情况

呈现的原因如下:

  1. 因丢掉的那些代码从未提交过上gitLab

  2. 处理抵触文件时,可能不小心点到某按钮导致

  3. 丢掉的代码也未做过备份,也未提交过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(源文件,长途库房)

团队开发,优雅的使用工具 + 命令行的配合着进行git操作

第二种方法

如图所示

团队开发,优雅的使用工具 + 命令行的配合着进行git操作

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

  1. 最简略便是用github desktop,熟悉东西的人应该都知道这个界面,点击东西中心的按钮,点击弹出界面最下方有一个很长的按钮 choose a branch to merge into 分支称号,中文的意思是兼并你选择的一个分支到你这个分支下

团队开发,优雅的使用工具 + 命令行的配合着进行git操作
团队开发,优雅的使用工具 + 命令行的配合着进行git操作

  1. 选择完上面的分支 并点击下方长按钮, 下方会有’1 conflicted file’ 即有1个抵触的问题,当你兼并master分支testGitfollow分支上 ,点击相应的分支进行兼并,并点击下方的create a merge commit,就完事了,处理抵触,经过github desktop + vscode配合着一起运用

团队开发,优雅的使用工具 + 命令行的配合着进行git操作

  1. 看图,在vscode编辑器里面,HEAD是其时分支这片代码的内容,下方master便是来历的分支,即所需求merge的分支 用了 <<< 和 === 和 >>> 区别,相关的符号如下解说
    • <<<代表 其时分支
    • ===代表 分隔符
    • <<<代表 来历分支,即要兼并的分支

团队开发,优雅的使用工具 + 命令行的配合着进行git操作
4. 根据里面代码 我们能够点击上方的Accept Both Change 即可兼并了代码了,兼并完,回到github desktop,发现后面按钮变绿了,再点击 continue merge

团队开发,优雅的使用工具 + 命令行的配合着进行git操作

  1. 最后一步在主界面点击push origin

团队开发,优雅的使用工具 + 命令行的配合着进行git操作

  1. 等操作的loading滚动完就大功告成了。

git指令计划进行merge(git bash)

怎样test1分支的代码兼并test2分支的代码?

  1. 怎样创立文件夹并相关长途库房和创立本地库房,以下两种方法 app端应该打不开该链接,能够上滑去看看
  2. 提交本地代码到长途的分支

tes1分支

git add README.md
git commit -m 'test1'
git push origin test1
  1. 拉取要兼并分支的代码
git stash   # 检查下test1分支
git checkout test2
git pull
  1. 切换到test1分支,并兼并test2分支
git checkout test1
git stash pop
git merge test2
  1. 处理抵触(直接打开vscode的项目 有对应的文件名抵触,处理抵触方法和上方方法东西计划相同)

团队开发,优雅的使用工具 + 命令行的配合着进行git操作

团队开发,优雅的使用工具 + 命令行的配合着进行git操作
处理完抵触

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:单元测试更改