tag查看taggit tag 冲突..._git ignorecase">
当前位置:   article > 正文

整理常用的git指令_git ignorecase

git ignorecase

整理常用的git指令

了解git

在了解git之前,我们先了解自己项目现在的分支管理。

git分支管理

在项目合作过程中,不可避免会遇到多人协作的情况,这种情况下,分支的管理就尤为重要,稍有操作不严谨,就可以会有代码覆盖,代码冲突,合错代码的问题。

根据在项目实际场景中,我们有以下建议:

项目中有master分支(受保护分支)
dev分支 (开发分支)
test分支(测试分支)
prod(产线分支)
在基于这四个分支之后,我们需要保证的是,每次产线分支在发版上线之后,打一个tag标签。

每次项目新的迭代期间,建议从prod分支新建迭代分支,开发者姓名_上线发版时间 格式为标准,每次新拉一个迭代分支,以保证项目不同版本同时开发时,迭代分支代码的独立性。及时把代码更新同步到dev。
准备提测时,需要把代码同步到测试分支,建议用自己的迭代版本分支合并代码到测试分支。
准备上线时,需要把代码同步到产线分支,建议用自己的迭代版本分支合并代码到产线分支。
整个过程中,建议保持迭代分支的代码干净,并且将代码从迭代分支代码合并到对应分支。dev/test/prod不允许相互合并。
在发版上线之后,此时prod是代码最新的分支,建议将prod代码分支同步更新到test和dev,保证test和dev是最新代码。

拉代码

//直接clone master分支的代码
git clone <项目仓的地址>

//当需要clone 指定分支代码时
git clone -b <指定分支> <项目仓的地址>、

//新建一个分支,拉取某一次提交的代码版本到本地分支
git clone -b <指定分支> <项目仓的地址>
git checkout -b <分支> 远程仓库的commitId
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

强制拉代码覆盖本地

git fetch --all
git reset --hard origin/<分支>
git pull
  • 1
  • 2
  • 3

提交

git status
git add .
git commit -m"提交内容"
git pull --rebase
git push 或者 git push origin <分支>
  • 1
  • 2
  • 3
  • 4
  • 5

强制提交覆盖远程

git push -f origin <分支>
  • 1

提交跳过eslint代码检查

git commit --no-verify -m "commit"   就可以跳过代码检查
  • 1

tag

tag的作用可以查看回溯到整个完整提交阶段,如果需要查看某个版本的完整代码。可以依靠tag来查询。

*查看tag*
git tag 
*打tag* 
git tag <tag名>
使用-a来为tag打备注,备注信息由-m 指定
git tag -a tagName -m "my tag"
将tag推到远程
git push origin <tag名>
删除tag
git tag -d <tag名>
删除远程tsg
git push origin :refs/tags/<tag名>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

合并

当处理合并代码的时候,要确保自己分支的代码已经提交,是干净的。
方法三参考地址git push 将本地的更新提交到远程

合并之前应该保证自己的分支已经提交最新的代码。本地分支a,远程分支dev
合并方法一:(当前分支为a)
先切换到远程需要提交的分支上去
git checkout dev
在dev的分支下合并a分支
git merge a
解决冲突之后就可以对dev进行提交了。
git pull origin dev
git push origin dev
合并方法二:(当前分支为a)
先切换到远程需要提交的分支上去
git checkout dev
在dev的分支下合并a分支,在确认合并的代码(比如src文件里面的代码可以完全替换dev的src文件)
git checkout a src
解决冲突。
git pull origin dev
git push origin dev
合并方法三:(当前分支为a)
git pull origin a
git push origin a:dev
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

从某个分支的某次提交记录拉取一个新分支

先获取提交记录的commitId
在本地新建一个临时分支

git checkout -b 分支名 远程仓库的commitId
  • 1

回退

回退的时候需要先确定你需要回退到什么版本,我们可以直接使用

git reflog 
查询提交的记录,确认你回退的版本id
git reset --hard <版本id>
当回退版本之后,如果你在push之前pull的话,会让你本地的版本代码重新请求回来,这个代码应该是与你要回退的代码是冲突的。所以我们在回退版本之后需要提交的话,需要强制push
git push -f origin <分支>
  • 1
  • 2
  • 3
  • 4
  • 5

查询分支

git branch
//更新所有分支
git fetch
//查询所有分支
git branch -a
//查询之后退出查询分支
q
注:如果在使用中出现如下提示 .查询不到分支。我们需要更新一下分支哦
error: pathspec 'origin/test' did not match any file(s) known to git.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

解决冲突

在多人协作情况下如果遇到在解决完a.vue页面冲突之后,a.vue的修改再也拉不下来的问题。可以考虑如下处理

强制更新
//下载远程的库的内容
git fetch --all
//把HEAD指向刚刚下载的最新的版本
git reset --hard origin/master
  • 1
  • 2
  • 3
  • 4
  • 5

当修改文件名或文件夹名称无法提交commit时

//查看是否忽略大小写 true为忽略。此时修改文件名大小写不会提交
git config core.ignorecase
//git配置文件修改配置core.ignorecase
git config core.ignorecase false
  • 1
  • 2
  • 3
  • 4

github提交代码时报husky错误

自己在提交代码的时候发现报错
在这里插入图片描述
在网上百度的方法并没有解决自己的问题,于是自己仔细看了下自己的项目,是刚新建的一个分支,没有node_modeules文件夹。抱着试一试的心态,yarn install了一下。再重新进行提交,居然就成功了。

合并代码失败问题

背景为:现有分支dev和test分支。现在需要将dev的代码合并到test分支上,更新test分支。

遇到问题:test分支拉取了dev分支代码之后,但是在合并代码的时候,解决了部分冲突。后面发现test分支有部分文件与dev分支对比有丢失。此时更新dev分支,重新在test分支上merge dev时发现提示已经更新。想着可以既然强拉不下来,是否可以将test分支的代码全部删除,再重新将dev分支拉取下来,结果按照这个思路操作了之后发现也是不行,依旧是提示已经是更新过了。
此时突然想到,git合并的时候可能是根据提交记录来的,也就是说我虽然把test分支代码删除了,但是在git看来,我之前已经合并过了dev的所有提交记录,所以再怎么merge都告诉我已经更新了。

处理方法:切换到dev分支,删除当前test分支,新建一个本地分支test分支,此时这个新的test分支和刚刚删除的那个test分支是完全不同的分支,然后再在这个test分支上强推上远程test分支。操作完成之后,可以看到远程test分支和远程dev分支的代码就没有文件丢失了。
具体操作可查看下面的提交命令

//切换到dev分支
git checkout dev
git pull origin dev
git checkout -D test
git checkout -b test
git push -f origin test
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Commit message格式

<type>: <subject> 
  • 1

type
feat:新功能(feature)
fix: 修补bug
docs:文档(documentation)
perf:优化
style:格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/1005502
推荐阅读
相关标签
  

闽ICP备14008679号