Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1107|回复: 6

git 的奇技淫巧

[复制链接]

253

主题

362

帖子

2426

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2426
发表于 2023-6-17 13:59:24 | 显示全部楼层 |阅读模式
1)git clean -X -f  for what?
删除本地所有未提交的更改
如果没有跟踪新建的或变化的文件,用
git checkout -- *
来删除工作目录的变化。已经跟踪的就拉倒吧。

清除gitignore中记录的文件
git checkout . && git clean -xdf

一般 git clean都是配合git reset 使用的

如果你有的修改已经加入了暂存区
那么,命令
git reset --hard
git clean -xdf

未push但commit回退
1.git reset --soft HEAD^
会保留代码
2.git reset --hard HEAD^
不会保留未提交的代码,回退到上个版本

2)git回滚到某一个版本

git reset --hard a136c6923d882ffc9065439f33412936902a1f5d

3)强制提交

git push -f origin master

4)未push但commited,回退
1.git reset --soft HEAD^
会保留代码
2.git reset --hard HEAD^
不会保留未提交的代码,回退到上个版本


5)android版本管理


在项目下删除所有仓库的更改
repo forall -c git clean -fd
repo forall -c git reset --hard



回复

使用道具 举报

253

主题

362

帖子

2426

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2426
 楼主| 发表于 2024-9-12 00:04:55 | 显示全部楼层
git 使用 类似 VisualStudio.gitignore  等排除文件:
  1. # 下载VisualStudio.gitignore文件
  2. curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/master/VisualStudio.gitignore

  3. # 将.gitignore添加到Git仓库
  4. git add VisualStudio.gitignore

  5. # 提交.gitignore文件
  6. git commit -m "Add VisualStudio.gitignore"

  7. # 配置Git使用.gitignore文件
  8. git config core.excludesfile VisualStudio.gitignore

  9. # 如果已经有文件不需要跟踪,移除它们的缓存
  10. git rm --cached <file-name>

  11. # 提交更改
  12. git commit -m "Remove files that should not be tracked"
复制代码


以上。
回复

使用道具 举报

253

主题

362

帖子

2426

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2426
 楼主| 发表于 2025-2-11 21:59:32 | 显示全部楼层
‌git checkout .命令用于恢复工作区的所有更改‌。这个命令会恢复工作区中的所有文件到最近一次提交的状态,但不会影响未跟踪的文件‌。

具体来说,git checkout .命令的作用包括:

‌恢复工作区的所有文件‌:这个命令会将工作区中的所有文件恢复到最近一次提交的状态,即撤销所有未提交的更改。这通常用于在需要时快速回到一个干净的状态‌。
‌不涉及暂存区‌:需要注意的是,git checkout .命令只影响工作区的文件,不会影响暂存区(索引)中的文件。如果你需要撤销暂存区中的更改,可以使用git reset命令‌。
使用场景和注意事项:

‌恢复所有文件‌:如果你需要快速恢复工作区到最近一次提交的状态,可以使用git checkout .。
‌谨慎使用‌:由于这个命令会撤销所有未提交的更改,建议在执行前确保已经保存了所有重要的更改,以避免数据丢失。
‌与git restore的区别‌:从Git 2.23版本开始,推荐使用git restore命令来恢复文件,因为git checkout .在某些情况下可能会导致混淆。git restore提供了更明确的操作和更好的文档支持‌。
回复

使用道具 举报

253

主题

362

帖子

2426

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2426
 楼主| 发表于 2025-2-11 22:01:35 | 显示全部楼层
‌git clean -xdf命令用于清理工作目录并删除所有未跟踪的文件和目录,包括那些被.gitignore文件忽略的文件‌‌。

具体来说,git clean命令用于清理工作目录中的文件。-x选项指示Git删除所有未跟踪的文件,包括那些被.gitignore文件忽略的文件‌。-d选项指示Git删除目录,但只删除空目录‌。-f选项表示强制执行操作,不会提示用户进行确认‌。

使用该命令时需要非常谨慎,因为它会删除工作目录中所有未跟踪的文件和目录,包括被.gitignore文件忽略的内容。因此,在执行该命令之前,务必确保已经备份任何重要的文件或目录‌。
回复

使用道具 举报

253

主题

362

帖子

2426

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2426
 楼主| 发表于 2025-3-5 09:54:47 | 显示全部楼层
给程序打标签

给当前版本打标签:git tag -a v1.0.1 -m ” Comments and message of this tag.”
给当前版本打轻量标签:git tag v1.0.0
给过去版本追加标签:后面跟指定版本的校验和:git tag -a v0.1.1 9fceb02
显示某一个版本和它的标签:git show v0.1.1
显示所有的标签:git tag
共享标签(提交到共享版本库):git push origin v1.0.0
将所有不在远程版本库的标签都传送过去:git push origin –tags
获取所有远程的标签:git pull origin –tags   (双横线)
回复

使用道具 举报

253

主题

362

帖子

2426

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2426
 楼主| 发表于 2025-3-10 20:36:03 | 显示全部楼层
git checkout -b debug origin/debug
在本地没有debug分支的情况下,建立debug分支,并拉取 origin 远程的debug 分支到当前HEAD.
回复

使用道具 举报

253

主题

362

帖子

2426

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2426
 楼主| 发表于 2025-3-22 01:02:48 | 显示全部楼层
删除Push过的文件
  1. git rm example.txt
复制代码
  1. git rm -r directory_name
复制代码
  1. git commit -m "Remove example.txt"
复制代码
  1. git push origin main --force
  2. git push origin main --force-with-lease
复制代码
  1. git ls-remote origin main
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-4-14 22:22 , Processed in 0.016361 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表