GIT常用命令大全(二)
1.忽略文件权限或文件所有者
git config core.filemode false // 当前版本库 git config --global core.fileMode false // 所有版本库 cat .git/config //在git顶层管理的目录,查看当前git本地仓库的配置文件
2.忽略某文件或某目录所有文件的变化
//1、对于还没有track的文件或目录(没有add和commit的文件) (1)~/.gitconfig 忽略规则由本机所有仓库共用 如: [user] name = yourname email = yourname@email.com [gui] encoding = utf-8 [core] excludesfile = ~/.gitignore 也可以用命令设置 git config --global core.excludefile ~/.gitignore (2).git/info/exclude 仓库内根文件夹全局忽略文件的配置文件,配置该文件可以忽略。支持正则表达式 (3).gitignore 可以在仓库某一级目录下的创建该配置文件,增加忽略文件的规则。若在仓库的根文件夹创建,效果等同于.git/info/exclude配置文件 //配置语法: 以斜杠“/”开头表示目录; 以星号“*”通配多个字符; 以问号“?”通配单个字符 以方括号“[]”包含单个字符的匹配列表; 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录; //2.对于已经缓存,但未commit的文件 git rm --cached filename 使用命令将要忽略的文件从缓存的索引中删除,再使用1中的方法增加忽略 git reset HEAD filename 也可以使用这个 //3.对于已经track的文件 忽略跟踪(提交代码时,忽略某一个文件不提交,即某个文件不被版本控制) git update-index --assume-unchanged FLIE #FILE是目标文件路径 恢复跟踪 git update-index --no-assume-unchanged FLIE #FILE是目标文件路径 不过如果执行 git checkout和git reset的时候仍然会影响到这些文件,并把内容恢复到被跟踪的内容(再次修改仍然不会被跟踪)。 如果忽略的文件多了,可以使用以下命令查看忽略列表 git uls-files -v | grep '^h\ ' 提取文件路径,方法如下 git ls-files -v | grep '^h\ ' | awk '{print $2}' 所有被忽略的文件,取消忽略的方法,如下 git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged
3.合并多次commit为一次commit
git rebase -i HEAD~4 对最近的 4 个 commit 进行 rebase 操作; 操作Commands : pick:保留该commit (缩写p) reword:保留该commit,但要修改该次commit的注释(r) edit:保留该commit,但要停下来修改该提交(不仅仅修改注释)(e) squash:将该commit和前一个commit合并(注释也合并)(s) fixup:将该commit和前一个commit合并,放弃当前 commit 的注释(f) exec:执行shell命令(x) drop:丢弃该commit(d) 编辑后保存退出,git 会自动压缩提交历史,如果有冲突,记得解决冲突后,使用 git add . git rebase --continue 重新回到当前的 git 压缩过程 如果你想放弃这次压缩的话,执行以下命令 git rebase --abort 推送到远程仓库 git push -f
4.删除某次commit
可以使用 git 压缩 rebase 指令来删除某个 commit 可以通过 git rebase -i HEAD~1 (对最近1次 commit 进行 rebase) 或 git rebase -i 9fbf10(对 commit id 前几位为 9fbf10 的 commit 之后的 commit 进行 rebase); 将需要删除的 commit 设置操作指令 drop ,保存退出即可; 在执行 git log 时,可以发现该条 commit 已经从提交历史中删除了;
5.修改当前commit的注释
git commit --amend
出现有注释的界面(你的注释应该显示在第一行), 输入i
进入修改模式,修改好注释后,按Esc
键 退出编辑模式,输入:wq
保存并退出。ok,修改完成。
如果修改之前的注释,可以使用git rebase -i [commit_id]指令,使用edit的选项
6.暂存文件
常用git stash命令: (1)git stash save "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。 (2)git stash list :查看stash了哪些存储 (3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1} (4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p (5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1} (6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1} (7)git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储 (8)git stash clear :删除所有缓存的stash 说明:新增的文件,直接执行stash是不会被存储的,可以使用先使用git add 加到git 版本控制里,再git stash
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App