git 奇技淫巧

Tag

添加 Tag

例如:1.0.0

git tag -a 1.0.0 -m "1.0.0 版本的备注信息."

推送所有 tag,同步到远程仓库:

git push origin --tags

删除本地 Tag

例如:1.0.0

git tag -d 1.0.0

删除远程标签需要先删除本地标签,再执行下面的命令:

git push origin :refs/tags/1.0.0
git push origin --delete tag 1.0.0

展示当前分支的最近的tag

git describe --tags --abbrev=0

默认 tag 是打在最近的一次 commit 上,如果需要指定 commit 打 tag:

git tag -a <version-number> -m "v1.0.0 发布(描述)" <commit-id>

分支

快速切换分支

git checkout -

删除已经合并到master的分支

git branch --merged master | grep -v '^\*\|  master' | xargs -n 1 git branch -d

列出远程服务器和本地的所有分支,以及分支上的最后提交

git branch -vv

列出本地和远程分支

-a参数相当于:all

git branch -a

列出所有远程服务器上的分支

-r参数相当于:remote

git branch -r

同步本地与远程分支

删除远程不存在的本地分支

git fetch --p

更新远程跟踪分支

git fetch origin

创建并切换到本地分支

git checkout -b <branch-name>

创建并切换到远程分支

git checkout -b <branch-name> origin/<branch-name>

删除远程分支

git push origin --delete <remote-branchname>
git push origin :<remote-branchname>

重命名本地分支

git branch -m <new-branch-name>

Commit

合并本地的最后两次 commit

git reset --soft HEAD^git commit --amend

修改上一次的 commit 信息

git commit --amend

展示简化的 commit 历史

git log --pretty=oneline --graph --decorate --all

以新增一个commit的方式还原某一个commit的修改

git revert <commit-id>

回到某个commit的状态,并删除后面的commit

和 revert 的区别:reset 命令会抹去某个 commit id 之后的所有 commit

git reset <commit-id>  #默认就是-mixed参数。
git reset –mixed HEAD^  #回退至上个版本,它将重置HEAD到另外一个commit,并且重置暂存区以便和HEAD相匹配,但是也到此为止。工作区不会被更改。
git reset –soft HEAD~3  #回退至三个版本之前,只回退了commit的信息,暂存区和工作区与回退之前保持一致。如果还要提交,直接commit即可   
git reset –hard <commit-id>  #彻底回退到指定commit-id的状态,暂存区和工作区也会变为指定commit-id版本的内容

查看指定路径文件代码是谁写的

git blame <file-name>

远程仓库

删除远程仓库地址

git remote remove origin <remote-url>

修改远程仓库的url

git remote set-url origin <URL>

增加远程仓库

git remote add origin <remote-url>

列出所有远程仓库

git remote

stash

暂存命令stash使用

git stash #将本地修改暂时存储起来
git stash list #查看暂存的信息
git stash pop  #应用最近一次暂存的内容
git stash apply stash@{1} #应用指定版本的暂存内容
git stash clear  #清空暂存栈
git checkout <stash@{n}> -- <file-path> #从stash中拿出某个文件的修改

Git取消合并(merge)、暂存修改(stash)、回退到某个版本(reset)的使用方法

例如:取消某次合并

git merge --abort #如果Git版本 >= 1.7.4
git reset --merge #如果Git版本 >= 1.6.1

注意: 在合并之前要保证没有未提交的文件,如果有未提交的文件但现在又不想提交,用stash命令暂存。

回退到某个版本并应用指定的几次提交

git reset --hard 1d7444 #回退到某个版本
git cherry-pick 626335 #将某次commit的更改应用到当前版本
git cherry-pick …
git push origin HEAD --force  #强制提交

注意: 如果是撤销某次提交,可以用revert命令,git revert是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留; git reset是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区。

git强制push

git push -u origin master -f

把暂存区的指定file放到工作区中

不添加参数,默认是-mixed

git reset <file-name>

撤销所有未提交的本地修改

git checkout .

Push 本地分支到指定远程分支

例如:Push 本地当前分支到远程仓库 origin 的 master 分支

git push -u origin master

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博文

常用 Git 命令

转载自:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html;感谢作者辛苦撰写! 一般来说,日...

2996
来自专栏BY的专栏

Git 回滚代码的正确姿势 git revert 和 git reset 的区别

4478
来自专栏Crossin的编程教室

【Git 第9课】 撤销修改

前面说了,如果你手滑删掉了一个文件,可以用 Git 帮你找回来。同样,如果一个文件被你改来改去面目全非,直到程序无法运行,你累感不爱想要回到开始的状态,Git ...

35511
来自专栏柠檬先生

git 常用命令

git status 查看工作区和暂缓区状态 git add 将工作区放入暂缓区 git commit 将暂缓区放入 版本区 git add 把修改过的文件全部...

22010
来自专栏Java成神之路

Git_学习_09_指定某些文件不上传

注:git add 命令会将文件加入暂存区,git commit 会将暂存区中文件提交到git本地仓库,git push 会将本地仓库中新添加的文件上传到远程分...

4702
来自专栏mwangblog

git文件状态,暂存与提交

1454
来自专栏流媒体

Git常用命令

Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。

912
来自专栏二次元

[笔记]Git常用命令大全

继上一次后,抽空整理了个比较全的Git常用命令,找到了一张非常棒的导图,非常高清的(1759*3162)。

1124
来自专栏成猿之路

Git常用命令速查表

Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。

851
来自专栏杨龙飞前端

git恢复到上次提交 4个区5种状态检查修改撤销修改

转载:https://blog.csdn.net/kangvcar/article/details/78809247

1361

扫码关注云+社区

领取腾讯云代金券