分享5个Git使用技巧
Git 使用 技巧 分享
2023-06-13 09:17:12 时间
1、删除指定commit
假如某个项目当中有 3 条提交。
commit-3 bc3ce563
commit-2 b9c7e5c2
commit-1 5a480a4b
现在我们要删除commit-2
这条提交记录。应该如何做呢?
第一步:使用git reflog
查看提交信息
git reflog
第二步:rebase
操作
git rebase -i 5a480a4b
执行完这个命令后,就可以看到 5a480a4b
后的所有 commit 记录。
把原本的pick
单词修改为drop
就表示该ID对应的 commit log 我们需要删除。vim 保存退出。
第三步:解决冲突,强制推送更新到远程
git add . # 冲突时使用
git commit -m "new commit" # 冲突时使用
git rebase --continue # 冲突时使用
git push origin master -f
再查看远程的提交记录,发现commit-2
就没有了。
2、修改历史提交人信息
不知道你有没有遇到过这种情况,在维护个人的开源项目时,常常使用公司的邮箱和用户名提交了 Git 信息。一旦提交了,又想修改,如何操作呢?
第一步:配置项目的提交信息
git config --local user.name 'studeyang'
git config --local user.email 'yanglu_u@126.com'
第二步:执行下面脚本
git filter-branch -f --env-filter '
OLD_EMAIL="原来的邮箱"
CORRECT_NAME="studeyang"
CORRECT_EMAIL="yanglu_u@126.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
3、彻底删除某文件
不小心提交了某个文件,历史提交信息一直都在,怎么彻底删除?
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch B类/B19-React/React入门.md' --prune-empty --tag-name-filter cat -- --all
git push origin master --force --all
4、推送到指定仓库的指定分支
本地的代码是通过工具生成的,如何把生成的代码推送到指定仓库下的指定分支?
# git push -f {your project} master:{your project branch}
git push -f git@github.com:studeyang/studeyang.github.io.git master:webstack
5、常用的标签操作
5.1 查看 tag
$ git tag
V1.0.3
v1.0.0
v1.0.0C01
v1.0.1
v1.0.2
v1.0.4
v1.1.0
5.2 查看 tag,带上 tag message
$ git tag -n1
V1.0.3 消息可视化
v1.0.0 正式版本
v1.0.0C01 正式版本
v1.0.1 v1.0.1 正式版本
v1.0.2 正式版本
v1.0.4 20迭代 正式版本
v1.1.0 22迭代正式版本
5.3 查看 tag 的详细信息
$ git show v1.4
tag v1.4
Tagger: Ben Straub <ben@straub.cc>
Date: Sat May 3 20:19:12 2014 -0700
my version 1.4
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number
5.4 tag 数量很多,如果只对 v1.0 系列感兴趣
$ git tag -l v1.0*
v1.0.0
v1.0.0C01
v1.0.1
v1.0.2
v1.0.4
5.5 创建 tag 并推送至远端
$ git tag -a v0.0.1 -m 'msg'
$ git push origin v0.0.1
5.6 轻量标签
$ git tag v0.0.1-lw
5.7 更新 tag
$ git push origin --delete v0.0.1
$ git log --pretty=oneline
15027957951b64cf874c3557a0f3547bd83b3ff6 Merge branch 'experiment'
a6b4c97498bd301d84096da251c98a07c7723e65 beginning write support
0d52aaab4479697da7686c15f77a3d64d9165190 one more thing
6d52a271eda8725415634dd79daabbc4d9b6008e Merge branch 'experiment'
0b7434d86859cc7b8c3d5e1dddfed66ff742fcbc added a commit function
4682c3261057305bdd616e23b64b0857d832627b added a todo file
166ae0c4d3f420721acbb115cc33848dfcc2121a started write support
9fceb02d0ae598e95dc970b74767f19372d61af8 updated rakefile
964f16d36dfccde844893cac5b347e7b3d44abbc commit the todo
8a5cbc430f1a9c3d00faaeffd07798508422908a updated readme
$ git tag -a v0.0.1 9fceb02
$ git push origin v0.0.1
相关文章
- git clone 加速,只需1秒就可提升几十倍速度,亲测有效
- Git 学习(三)---- GitHub 远程库操作
- git命令删除分支_git删除一个分支
- git 查看、修改Git用户名和密码_163邮箱用户名可以改吗
- Git 进阶使用1
- 使用Git更新Hugo 个人博客
- windows git 使用的一些问题和解决方案
- Git使用流程_git提交流程
- Centos7 安装|更新git
- (三)Git——分支
- Git版本控制教程之在Visual Studio Code中如何使用(四)
- 使用Git向码云提交代码
- 【Git】IDEA使用Git(完)
- git安装配置
- Git和gdb的使用
- 【错误记录】Git 使用报错 ( error: Cannot delete branch ‘dev‘ checked out at ‘D:/Git/git-learning-course‘)
- 【Git】Git 分支管理 ( 解决分支合并冲突 | 创建并切换分支 git switch -c feature1 | 修改 feature1 分支并提交 | 修改 master 主版本并提交 )
- 【Git】Git 标签使用 ( 查询哈希码 | 创建标签 git tag v1.0 | 查询标签 git tag | 查询标签信息 git show v1.0 | 创建标签并指定说明 | 删除标签 )
- git 的使用详解大数据
- 文件Linux下使用Git快速上传文件(linuxgit上传)
- Linux内核管理:Git的力量(linux内核git)
- 搭建Linux服务器,实现Git共享(linux搭建git服务器)
- 安装Git服务器:在Linux环境下的步骤(linux安装git服务器)
- 使用 GTWS 管理复杂的 Git 工作空间
- 教程:如何在 Linux 上卸载 Git?(linux卸载git)
- 使用Linux管理Git公钥的秘密(linuxgit公钥)
- 安装Git,轻松掌握Linux之美(linux的git安装)
- Linux下使用Git的快速安装步骤(linux下git的安装)
- 使用GIT进行源码管理——GUI客户端小结