郑州市建设劳务服务网站,photoshop在线工具,网站设计主题有哪些,长沙做网站哪个最好概述
本次集中总结了Git4个常规操作#xff0c;导出(archive)、忽略(gitignore)、隐藏(Stash)、合并冲突(merge)的解决方法#xff0c;希望帮助到正在辛苦寻找的你。
.gitignore忽略文件
之前开发和部署服务比较仓促#xff0c;所以有很多图片文件一起加载到服务中#…概述
本次集中总结了Git4个常规操作导出(archive)、忽略(gitignore)、隐藏(Stash)、合并冲突(merge)的解决方法希望帮助到正在辛苦寻找的你。
.gitignore忽略文件
之前开发和部署服务比较仓促所以有很多图片文件一起加载到服务中使得仓库代码922M所以要分离出图片和忽略部分推送代码的时候提示Push rejected for repository size exceeds limit.说明Git仓库需要优化了。
首先导出之前Git
git archive --formatzip --outputoutput.zip HEAD设置全局Git账号和邮箱
git config --global user.name stark张宇
git config --global user.email 15117995393126.comgitignore的语法的前提
再设置.gitignore文件中gitignore的语法是关键的一个环节它相当于一个规定好的匹配规则可以设置忽略和不忽略等等条件主要的应该还是忽略的部分需要注意的是gitignore的语法只有在git的工作区中生效。
$ ll -a | grep .git
drwxr-xr-x 14 stark staff 448B 10 10 15:31 .git
-rw-r--r-- 1 stark staff 348B 10 10 15:30 .gitignore或者使用git remote -v来查看git仓库的url
$ git remote -v
origin https://gitee.com/beijing-wolf-slaying-biology/demo.git (fetch)
origin https://gitee.com/beijing-wolf-slaying-biology/demo.git (push).gitignore的语法
下面是一些常见的 .gitignore 文件语法规则
1.空行或以#开头的行将被 Git 忽略可以用作注释。
2.星号 * 代表零个或多个任意字符。例如, *.DS_Store 会匹配所有的 .DS_Store 文件。
3.问号 ? 代表一个任意字符。例如, ?.txt 会匹配 a.txt 但不会匹配 ab.txt。
4.方括号 [] 可以匹配括号内的任一字符。例如, [abc].txt 会匹配 a.txtb.txt 和 c.txt。
5.两个星号 ** 表示任意中间目录。例如, **/foo 会匹配 fooa/fooa/b/foo 等。
6.前缀 ! 表示不忽略。例如, *.txt 和 !important.txt 会忽略所有的 .txt 文件但不会忽略 important.txt。
前缀 / 表示只忽略当前目录下的文件。例如, /.idea/ 会忽略当前目录的 /.idea/ 文件。
8.后缀 / 表示只忽略目录。例如, /runtime/* 会忽略 runtime 目录下所有的 文件。
还有一个特殊情况我新增一个/config/忽略这个文件夹的话本地缓存删除改变成未track状态然后再提交,需要执行以下的命令
git rm -r --cached .
git add .
git commit -m update .gitignoreStash 命令隐藏操作
Stash 命令常用于某个部分功能开发到一半而不得不中途修复bug或者紧急切换分支或者是对当前Git分支进行隔离Stash命令的执行原理将一个新的存根推到堆栈上运行git stash命令。
$ git status
On branch admin_purchase_202310modified: app/admin/view/purchase/purchase/index.htmlmodified: app/common/command/ScpSend.phpmodified: public/pc/index.html执行git stash后当前分支就变成干净的工作区了可以在使用git status查看
$ git stash
Saved working directory and index state WIP on admin_purchase_202310: c3ce01bc Merge branch images_perf_202310$ git status
On branch admin_purchase_202310
nothing to commit, working tree clean可以使用git stash list的命令来查看stash栈上的代码序列使用git stash pop代码弹出栈。
git stash list
stash{0}: WIP on admin_purchase_202310: c3ce01bc Merge branch images_perf_202310Git 代码冲突
多人开发代码难免遇到代码冲突的问题Git版本中非常常见的地方有两个特别需要注意或者说容易忽略的点。
假设待上线分支是admin_purchase_202310,要发布一个版本的功能要合并分支main合并的前提是更新代码保持代码是最新的在进行操作发版要小心操作,合并之后要记得git push推送分支。
$ git pull
Already up to date.$ git merge admin_purchase_202310
Already up to date.$ git push
Everything up-to-date当发生冲突时先使用git status查看冲突的地方一般有字符做以区分。
合并分支显示失败合并中灵魂的一句命令 git merge –no-ff admin_purchase_202310
–no-ff指的是强行关闭fast-forward方式。fast-forward方式就是当条件允许的时候git直接把HEAD指针指向合并分支的头完成合并。属于“快进方式”不过这种情况如果删除分支则会丢失分支信息。因为在这个过程中没有创建commit。
git merge –squash是用来把一些不必要commit进行压缩比如说你的feature在开发的时候写的commit很乱那么我们合并的时候不希望把这些历史commit带过来于是使用–squash进行合并此时文件已经同合并后一样了但不移动HEAD不提交。
–no-ff不使用fast-forward方式合并保留分支的commit历史 –squash使用squash方式合并把多次分支commit历史压缩为一次