【GIT】工作中超实用git操作,持续更新

张开发
2026/4/6 17:31:38 15 分钟阅读

分享文章

【GIT】工作中超实用git操作,持续更新
工作中几乎每天都会和git打交道将自己工作中常用的git操作记录下来一来便于自己查阅与更新二来如果能帮助到大家那便最好不过了。文章目录一、超常用操作001使gitignore文件在项目中生效002清除红色文件-删除untracked文件003提交一个空的commit004修改本地已提交的commit信息005 git stash006 cherry-pick007本地项目关联git008commit后恢复到没有提交状态009revert对应于已经push的commit0010通过tag拉取分支0011代码自动格式化0012 强制add二、其他备忘操作001优雅的展示日志-日志显示一行002查看两个commit之间有哪些不同的文件003修改你的用户名和密码004Tag相关操作三. 相关问题1. git push 时 remote: No anonymous write access. fatal: Authentication failed for ....一、超常用操作001使gitignore文件在项目中生效项目中有些文件比如target文件夹、.idea目录是没有必要提交到GIT上的我们可以在git根目录也是项目的根目录下创建一个.gitignore文件。但是事情似乎没有这么简单当引入.gitignore文件后常常发现.gitignore文件似乎没有起作用这时可以考虑是否是因为git存在了本地缓存导致没有生效可以尝试以下命令带来的魔力。git rm-r--cached . // 删除本地缓存 文件会全部变红gitadd.// 添加要提交的文件002清除红色文件-删除untracked文件红色的git文件是比较烦人的尤其是当有很多红色的git文件散落在各个文件夹下。。。尝试下面的命令快速赶走它吧# 连 untracked 的目录也一起删掉git clean-df003提交一个空的commitgitcommit--allow-empty -m 前端通过api的访问与后端交互004修改本地已提交的commit信息提交完git commit突然发现commit内容写错了导致不符合公司的commit信息规范或者不符合本次修改的内容这时使用下面的操作可以快速编辑修改commit信息。//修改最近一次的提交信息gitcommit--amend005 git stash这是一个超实用的操作场景1当我们在修改bug时突然来了一个紧急的bug这时可以使用git stash 先将修改的内容放到缓存区然后等修改完后再git stash pop将原来修改的内容恢复。场景2当我们需要pull来更新代码时此时也可以先git stash先“隐藏”内容然后pull之后再pop一下这样可以减少pull之后带来的冲突问题#将未提交的内容放到缓存区以便切到其他分支git stash#切回到原有的分支之后使用如下命令可以将修改的内容重新添加到本分区git stash pop 注意不区分分支。006 cherry-pick它可以快速将已提交的commit的应用到其他分支场景比如多个分支多出现了一个bug在一个分支修改完bug后通过cherry-pick可以快速将已修改bug commit应用到其他分支。//会pick一个commit提交到当前的分支git cherry-pickcommitid//冲突解决完之后。。。gitstatus//发现 文件依然是modified 输入下面命令git cherry-pick--continue007本地项目关联git比如将一个本地的分支关联远端已存在的仓库push提交时提供一个新的分支名如use-mp-1push到仓库中git init//在已存在代码的根目录位置git remoteaddorigin 远程仓库地址// 关联远程已有仓库gitstatus// 查看本地仓库状态gitadd.// 将本地项目文件添加到版本控制可以自己选择添加哪些文件gitcommit-amfirst commit// 提交到本地仓库git push-u origin master// 提交到远程仓库// 可以使用idea push一个新的分支名到远端008commit后恢复到没有提交状态对于没有push的commit。因为“手快”代码提交错了没关系reset会将你提交的内容会到未提交的状态。注意git的历史提交信息此时会消失comitId值是需要修改的commit的上一个commitIdgitreset--soft1169ce2e009revert对应于已经push的commit比如我们连续提交了三次commitcommit1、2、 3突然发现commit 2有bug需要撤销但又不想影响撤销commit 3的提交这时使用revert“反做”commit 2这时会出现一个commit 4它保留了commit 3提交的内容但撤销commit2的内容。想重新提交中间的某一个commit//回退到某个commit提交前的信息重新编辑后再提交git revert1169ce2e0010通过tag拉取分支#展示项目有哪些taggittag#根据tag拉取分支git branch new-branch-name tag-namegitbranch roman-5.4.0.6-uc-fixed5.4.0.6-uc-fixed0011代码自动格式化mvn spotless:apply0012 强制addgitadd-f/fold二、其他备忘操作001优雅的展示日志-日志显示一行git log--prettyoneline002查看两个commit之间有哪些不同的文件git diff--name-only 66f36bda e273d6a8003修改你的用户名和密码//查看lianoLiangdeMacBook-Pro Commands%git config--list//修改git config--global user.name roman.gaogit config--global user.email roman.gaoxxx.comgit clone gitgithub.com:jxnu-liguobin/Java-Learning-Summary.git#此处的连接可以是SSH也可以是HTTPS取决于你的爱好推荐SSH。004Tag相关操作git tag--创建tag--在当前分支给最近提交的一次commit打tag--1、轻量级git tag v1.0(标签名)--2、含有附注的-a指定标签名字。-m对标签的说明 git tag-a v1.2.0-beta-mrelease_1.2.0-beta 5.2发版#push一个git push origin release_1.2.0-beta_tag#删除git tag-d release_1.2.0-beta 解释 tag是git版本库的一个标记指向某个commit的指针是不可移动的。 tag主要用于发布版本的管理一个版本发布时我们可以为git打上 v.1.0.1v.1.0.2…这样的标签。 tag感觉跟branch有点相似但是本质上和分工上是不同的 branch 对应一系列commit是很多点连成的一根线有一个HEAD 指针是可以依靠 HEAD 指针移动的。 所以两者的区别决定了使用方式改动代码用 branch,不改动只查看用 tag。 tag 和 branch 的相互配合使用有时候起到非常方便的效果例如已经发布了 v1.0v2.0v3.0三个版本这个时候我突然想不改现有代码的前提下在 v2.0的基础上加个新功能作为 v4.0发布。就可以检出 v2.0的代码作为一个 branch 然后作为开发分支。 重命名tag1.git tag newtag oldtag//删除2.git tag-d oldtag//3.git push origin :refs/tags/oldtag4.git push--tags恢复到tag前提交的代码 git reset--hard 2bfb52fc 直接这样就行了。后面是那个tag的id三. 相关问题1. git push 时 remote: No anonymous write access. fatal: Authentication failed for …先在个人github页面的Settings → Developer settings → Personal access tokens → Generate a personal access token生成令牌在git bash命令行中输入git push等待弹出窗口输入令牌

更多文章