git 已经成为日常开发流不可或缺的一部分,甚至说是核心部分,但有些不常用指令时常会忘记,再次做下备忘,省的用到的时候再去找了。用到的时候才会记录,指令是不断增加的,请不要见怪 ~>~
git 常用指令总结
官方文档:https://git-scm.com/book/zh/v2
command |
说明 |
备注 |
git add . |
提交修改到暂存区 |
修改文件和新增文件,不包括删除的文件 |
git add -u |
提交到暂存区 |
删除文件和修改文件,不包括新增文件 |
git add -A |
--all |
提交到暂存区 |
包括修改文件、新增文件和删除文件 |
git commit -m '注释' |
提交到本地版本库 中 |
git commit -am '注释' |
直接提交到本地版本库 |
不用再 git add 了 |
git checkout -- 文件名 |
检出暂存区的更新 |
变成未git add 之前的状态 |
git pull |
从远程拉去代码到本地,并自动合并 merge |
|
git push |
|
git rm --cached file_path |
删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制 |
git rm file_path |
删除暂存区或分支上的文件, 同时工作区也不需要这个文件了 |
git fetch |
从远程拉取代码到本地,不自动合并 |
可能会有缓存问题 |
git fetch -p |
从远程拉取代码到本地,不自动合并 |
可以解决缓存问题 |
git branch -a |
查看远程分支和本地所有分支 |
git branch -r |
查看远程分支 |
git branch -D 分支名 |
删除本地分支 |
git branch -m old_name new_name |
重命名分支名称 |
新分支推送到远程后,旧分支还存在,可以手动删除远程分支 |
git push origin :分支名 |
删除远程指定分支 [origin 后面有空格] |
git push origin --delete 分支名 |
删除远程分支 [同上] |
|
git remote add 仓库名 git地址 |
添加仓库 |
可以添加多个仓库,仓库名不重复即可 |
git fetch 仓库名 |
从指定仓库获取远程所有更新 |
git pull 仓库名 |
从指定仓库获取远程所有更新 |
自动合并 |
git remote rm 仓库名 |
移除指定远程仓库 |
git remote show origin |
查看本地分支和追踪情况 |
git remote prune origin |
本地同步删除已删除的远程分支 |
git cherry-pick commitid |
复制commit 到当前分支 |
git cherry-pick commitid1..commitid2 |
检出 commitid1 到 commitid2 之间的提交到当前分支 |
左开右闭 区间 |
回滚 |
git reset --hard HEAD^ |
本地提交回滚1次 |
git reset --hard HEAD~3 |
最近3次提交回滚 |
git remote -v |
查看远程仓库地址 |
git reset --hard origin/master |
强制与版本库一致 |
git tag |
查看本地所有 tag |
git tag -l 'v1.4.2.*' 查看匹配 tag |
git tag -d tag_name |
删除本地 tag |
git tag [name] |
创建一个新的tag |
git tag -a v0.9 9ff91da |
为已经提交的代码 打 tag |
默认为最新代码 tag |
git push origin :tag |
删除远端 tag |
git tag -a v1.4 -m 'my version 1.4' |
创建一个含附注类型的标签 |
-m 选项则指定了对应的标签说明 |
git check tag |
切换 tag |
git show v1.4 |
查看相应标签的版本信息,并连同显示打标签时的提交对象 |
git tag -s v1.5 -m 'my signed 1.5 tag' |
用 GPG 来签署标签 |
git push origin [tagname] |
推送标签至远程仓库 |
git push 默认不推送 |
git push origin --tags |
推送所有标签至远端仓库 |
|
git log --oneline --decorate --graph |
以图像形式查看 commits |
其实git log --oneline 就很清晰 |
git update |
git 2.17.1 之前版本, git 自升级 |
git update-git-for-windows |
git 2.17.1 之后的版本, git 自升级 |
批量操作
grep 是对 git branch 的输出结果进行匹配
xargs 的作用是将参数列表转换成小块分段传递给其他命令
本地删除:git branch | grep '正则' |xargs git branch -D
从分支列表中匹配到指定分支,然后一个一个(分成小块)传递给删除分支的命令,最后进行删除。
远程删除:git branch -r | grep '正则' |xargs git push origin --delete
多仓库管理
添加第一个仓库
git remote add origin git-url
添加第二个仓库
git remote set-url --add origin git-url2
推送到两个仓库
git push --all