likes
comments
collection
share

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

作者站长头像
站长
· 阅读数 53

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"//当存在未定义而未使用的组件时,关闭报错

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分支的代码?

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 gitee2 git@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 merge --abort -----取消合并分支
  • 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:单元测试更改
转载自:https://juejin.cn/post/7148125135206088717
评论
请登录