git 开发中常见问题总结

场景一:本地项目部署到远程仓

在实际项目开发时,首先会将本地一份初始化的项目部署到远程仓库,但是本地的一些不必要的文件不需要在远程仓显示。想忽略掉这些文件只需要在 .gitignore文件配置即可。
在这里插入图片描述
注意:该条件的前提是要忽略的文件本地仓库有,远程仓库没有。

git 忽略规则匹配语法:

  • 空格不匹配任意文件,可作为分隔符,可用反斜杠转义
  • 开头的文件标识注释,可以使用反斜杠进行转义
  • ! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
  • / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
  • / 开始的模式匹配项目根目录
  • 如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
  • ** 匹配多级目录,可在开始,中间,结束
  • ? 通用匹配单个字符
  • [] 通用匹配单个字符列表

常用忽略规则示例:

  • bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
  • /bin: 忽略根目录下的bin文件
  • /*.c: 忽略 cat.c,不忽略 build/cat.c
  • debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
  • **/foo: 忽略/foo, a/foo, a/b/foo等
    a/**/b: 忽略a/b, a/x/b, a/x/y/b等
  • !/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
  • *.log: 忽略所有 .log 文件
  • config.php: 忽略当前路径的 config.php 文件
    此处引用:https://blog.csdn.net/zh854663752/article/details/83352285

场景二:忽略掉配置文件

在开发中,在项目初始化时,会提交一份代码到远程仓,然后我们拉取下来进行开发,但是由于在本地进行测试之类的,比如数据库连接配置(mysql redis之类的)都不尽相同,这时我们想要在我们拉取或提交时忽略掉这些配置文件。我们可以使用命令方式配置:

git update-index --assume-unchanged <忽略的文件路径>
使用该命令后git便不会追踪该文件的更新情况了。

当然我们也可以解除忽略的一些文件,使用命令
git update-index –no-assume-unchanged <忽略的文件路径>

但是有时候由于忽略的文件过多,这时我们可以查看忽略的文件,找到自己想要解除忽略的文件。使用命令:
git ls-files -v | grep '^h\ '

场景三:删除远程库文件

本地提交时手抖 push了多余的文件到远程仓,但是又不想这些文件被版本控制,想要在远程仓删掉,保留本地的文件,可以使用命令:

git rm --cached <要删除的文件>

一般这种场景是在首次把项目推送到远程库时,多推送了,由于推送的文件已经被版本管理了,所以只有先删除然后在.gitignore文件中配置。

场景四:加入一个新的项目,项目已经在gitlab中存在,现在需要拉取到本地。

1.本地创建一个文件夹 用于存储从远程拉下来的项目 比如:
D:/SoftWare/code
2.切换到code目录,初始化git 
git init
3.与远程仓库建立连接
git remote add origin url(ssh或者http)
4.当然此时远程有的分支本地是没有的,这时候就需要本地建立分支并与远程进行关联
git checkout -b 分支名 origin/分支名
5.然后拉取远程代码
git pull origin 分支

场景五:项目发版后发现有bug这时要修复bug因此需要新建一个分支,修复bug后合并

1.在当前发版代码所在的主分支下创建一个新的分支,当前在master分支上
git checkout -b 本地分支名
2.将创建的分支推送到远程,并建立关联。
git push --set-upstream origin 远程分支名
3.在新分支上进行bug修复,修复完后合并代码。

场景六:远程代码已变更,本地又有修改。

远程与本地代码有冲突的时候,执行git pull时就会失败,此时可以使用命令将本地代码暂存起来,然后执行pull命令后再把暂存的代码释放出来,然后再push。

1.将本地代码暂存起来
git stash
2.执行完后git status可以看到当前分支是干净的,拉取远程代码
git pull
3.释放本地暂存
git pop
4.然后就可以将代码提交上去了。

场景七:commit/add后想撤回

1.commit后想要撤回commit,仅撤回commit,写的代码仍会保留。
git reset --soft HEAD^
2.add后想撤回add
git reset HEAD
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值