收集、记录、整理一些?Git?相关使用技巧。
?git?config
?查看配置信息
- 命令参数?--list,简写?-l
- 格式:`git?config?[–local|–global|–system]?-l`
//查看仓库级的?config
git?config?--local?-l
//查看全局级的?config
git?config?--global?-l
//查看系统级的?config
git?config?--system?-l
//查看当前生效的配置
git?config?-l
?打开编辑器(修改)
- 命令参数?--edit?-e
- 格式:`git?config?[–local|–global|–system]?-e`
??
**注**:语法相同,唯一区别是该命令会使用默认编辑器打开配置文件。
添加配置
- 命令参数?--add
- 格式:`git?config?[–local|–global|–system]?--add?section.key?value`
#?
git?config?--add?core.email?"sss213018@163.com"
#?core.email=sss213018@163.com
?git?push?提交到远程仓库
- 默认当前分支?`git?push`
- 指定分支?`git?push?origin?master`
- ? `git?push?<remote>?<place>`
- ??该命令可翻译为:切换到本地仓库中的“`master`”分支,获取所有的提交,再到远程仓库“`origin`”中找到“`master`”分支,将远程仓库中没有的提交记录都添加上去。
- 指定不同分支?`git?push?origin?master:newBranch`
- ??`git?push?origin?<source>:<destination>`
- ??该命令可翻译为:将本地仓库中的“`master`”分支合并到远程的`newBranch`分支,如果该`newBranch`分支不存在远程,则会以此名称创建。
?git?fetch?拉取远程到本地
?整体用法与`git?push`类似,只是方向相反罢了。
- `git?fetch`?:下载所有的提交记录到各个远程分支
- `git?fetch?origin?foo`?:下载远程foo分支的提交记录到本地`o/foo`分支,它不会更新你的本地的非远程分支,?只是下载提交记录。
- `git?fetch?origin?<source>:<destination>`?:`source`现在指的是远程仓库中的位置,而`destination`才是要放置提交的本地仓库的位置。
?git?merge?分支合并
???`git?merge?dev`?//把dev合并到当前分支
???`git?merge?--no-ff?-m?"merge?with?no-ff"?dev`
???`git?log?--oneline?-3`?//查看最近?3?次
???`git?cherry-pick?6432f50`?//把记录?6432f50?合并到当前分支
?git?pull?拉取并合并
git?pull?相当于是?fetch?后跟?merge?的缩写。你可以理解为用同样的参数执行?git?fetch,然后再?merge?你所抓取到的提交记录。
- `git?pull?origin?foo`?:相当于?`git?fetch?origin?foo`;?`git?merge?o/foo`
- `git?pull?origin?master:foo`?:它先在本地创建了一个叫?foo的分支,从远程仓库中的?master?分支中下载提交记录,并合并到?foo,然后再?merge?到我们的当前检出的分支?bar上。
git?tag?打标签
- 轻量标签:`git?tag?v1.0`
- ??轻量标签本质上是将提交校验和存储到一个文件中——没有保存任何其他信息。?创建轻量标签,不需要使用?-a、-s?或?-m?选项,只需要提供标签名字
- 附注标签:`git?tag?-a?v1.0?-m?"my?version?1.0"`
- 后期打标签:?`git?tag?-a?v1.0?9fceb02`?//指定某次提交
- ??git?log?--oneline?-3?//查看提交历史与hash值?e3890bc
- 推送到远程origin
- ??`git?push?origin?v1.0`?或?`git?push?origin?--tags`
?git?checkout?检出、替换
**检出:分支切换、文件恢复**:
- 创建切换分支:`git?checkout?-b?xx`?等同于?1.?`git?branch?xx`?2.?`git?checkout?xx`
- 恢复状态:?`git?checkout?./`
- git?checkout?文件名
**替换覆盖:达到合并指定文件夹或文件到分支的效果**:
- 场景:如当前在`master`分支,合并`dev`分支下的`test`文件夹中所有文件到`master`
- 示例:`git?checkout?dev?src/pages/test`?//?git?checkout?*分支*?*文件路径*
tips:该操作是直接替换并不是合并,实际操作时可以再新建一个分支避免丢失别人别人的改动记录。
?delete?删除分支
- 查看所有分支:`git?branch?-a`
- 删除本地分支:`git?branch?-d?xx`
- 删除远程分支:`git?push?origin?--delete?xx`
?set-url?更改远程地址
- 绑定?ssh?地址:`git?remote?set-url?origin?git@git.xx.com`
- push?所有?commit?和?branch:`git?push?-u?origin?--all`?//?-u?可以不加
- push?所有?tag:`git?push?-u?origin?--tags`
>?-u?的作用
>?远程库有可能并没有mybranch1分支:
>?git?push?-u?origin?mybranch1?相当于
>?git?push?origin?mybranch1?+?git?branch?--set-upstream-to=origin/mybranch1?mybranch1
?git?stash?提交特定文件、恢复错误的存储
- 作用:用于想要保存当前的修改,但是想回到之前最后一次提交的干净的工作仓库时进行的操作,`git?stash`将本地的修改保存起来,并且将当前代码切换到`HEAD`提交上。
- 场景:①开发到一半,同步远端代码、②工作流被打断,需要先做别的需求、③提交特定文件、④恢复被错误clear/drop的存储。
- `git?stash`:等同于?`git?stash?save`?,存储修改并且将`git`的工作状态切回到`HEAD`上一次合法提交上
- `git?stash?pop`:移除单个存储单元,和`git?stash?save`的作用相反。
- `git?stash?list`:查看修改列表
- `git?stash?show`:展示存储单元和最新提交的`diff`结果
- `git?stash?apply`:用于重新存储
原文博客:Git常用命令 | 小帅の技术博客 (ssscode.com)
|