史上最全git命令集
配置化命令
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
git config --global alias.ll "log --graph --pretty=format:'%C(yellow)%h%Creset -%C(cyan)%d%Creset %s %Cgreen(%an, %cr)' --abbrev-commit"
git config --global alias.a '!git add -A && git commit -m'
配置全局.gitignore
# 这里最好写绝对路径 有时候可能不生效
git config --global core.excludesfile D:/project/.gitignore
# .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
# 解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
查看类命令
# 查看
git log --graph --pretty=format:'%C(yellow)%h%Creset -%C(cyan)%d%Creset %s %Cgreen(%an, %cr)' --abbrev-commit
# 查看 xxx提交的内容
git show <commit-id>
# 查看引用记录
git reflog
# 查看文件差异
git diff filename
# 一次diff出全部modify的文件内容 也可以自行重定向到某个文件中
git status | awk -F "modified:" '{if($2 != "") print $2}' | xargs git diff
撤销类命令
# 撤销掉add的文件(如果是新文件则是untracked状态 否则是modify状态)
git restore --staged test.txt
# 如果commit了 发现某个文件不对那么可以对单个文件再修改再次commit,
# 然后rebase <commit-id>之后的commit(不包括<commit-id>)
git rebase -i <commit-id>
# 撤销 add commit modify(把commit 记录全删掉 慎用)
git reset --hard <commit-id>
# 撤销add、commit (把commit 记录变成modify之后)
git reset --mixed <commit-id>
# 仅撤销commit (把commit 记录变成add之后)
git reset --soft <commit-id>
# 撤销一次提交内容
git revert <commit-id>
创建或删除相关命令
# 本地仓库关联到远程仓库
git remote add origin git@github.com:whalefall541/rebase-learn.git
# 删除关联
git remote rm origin
# 删除远程 分支
git push origin -d <branch-name>
# 创建本地 分支
git branch <branch-name>
# 创建并切换
git chekcout -b <branch-name>
# 删除本地 分支
git branch -D <branch-name>
合并类命令
# 关闭自动合并
git merge --no-ff -m "merge with no-ff" dev
# 自动变基 在当前分支重放另一个分支
git rebase [<branch-name> | <commit-id> | <HEAD~n>]
# 交互式变基
git rebase -i <commit-id>
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup [-C | -c] <commit> = like "squash" but keep only the previous
# commit's log message, unless -C is used, in which case
# keep only this commit's message; -c is same as -C but
# opens the editor
# 拉取代码时变基 fetch and rebase
git pull -r origin main
# 指定远程分支变基
git rebase origin/main
# 从其他分支复制某个提交到另一个分支
git cherry-pick <commit-id>
暂存内容命令
git stash
git stash list
git pop
如何暂存部分文件呢 stash part
提交相关命令
git add .
git commit -m "your description"
git push -u origin main
标签类命令
# 在当前分支当前提交上打标签:
git tag v1.0
#如果想要打标签在某个指定历史commit上:
git tag v0.9 f52c633
# 可以通过如下命令查看一个tag信息:
git show v0.1
# 如果标签打错了,也可以删除:
git tag -d v0.1
# 如果要推送某个标签到远程,使用命令git push origin <tagname>
git push origin v1.0
# 或者,一次性推送全部尚未推送到远程的本地标签:
git push origin --tags
# 如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
git tag -d v0.9
# 然后,从远程删除。删除命令也是push,但是格式如下:
git push origin :refs/tags/v0.9
如何同步github fork仓库
# Syncing a fork from the command line
git fetch upstream
git checkout main
git merge upstream/main
# Merging an upstream repository into your fork
git checkout <DEFAULT_BRANCH_NAME>
git pull https://github.com/spring-projects/spring-framework.git <DEFAULT_BRANCH_NAME>```
***欢迎关注微信公众号哦~ ~ 转载请注明出处***
![](https://img2020.cnblogs.com/blog/2023890/202007/2023890-20200721222259780-783079620.jpg)
史上最全git命令集的更多相关文章
- 你想找的Python资料这里全都有!没有你找不到!史上最全资料合集
你想找的Python资料这里全都有!没有你找不到!史上最全资料合集 2017年11月15日 13:48:53 技术小百科 阅读数:1931 GitHub 上有一个 Awesome - XXX 系列 ...
- [No00004F]史上最全Vim快捷键键位图(入门到进阶)vim常用命令总结
在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...
- nacos 实战(史上最全)
文章很长,而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三 ...
- 史上最全Windows版本搭建安装React Native环境配置
史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...
- 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发
[原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http: ...
- 史上最全的maven pom.xml文件教程详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
- 吐血总结|史上最全的MySQL学习资料!!
在日常工作与学习中,无论是开发.运维.还是测试,对于数据库的学习是不可避免的,同时也是日常工作的必备技术之一.在互联网公司,开源产品线比较多,互联网企业所用的数据库占比较重的还是MySQL. 在刚刚出 ...
- 优秀后端架构师必会知识:史上最全MySQL大表优化方案总结
本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/1190000006158186 1.引言 MySQL作为开源技术的代表作之一,是 ...
随机推荐
- php header 设置文件下载
控制器 php 代码: $filepath = "http://www.jiesen365.com/uploadfile/20150519044903-897.pdf"; //下载 ...
- 自学linux——7.Linux的自有服务(进阶篇)
linux自有服务 1.设置主机名 (1)临时设置主机名,需要切换用户(su)使之生效 #hostname主机名 (2)永久设置主机名,需要重启 先找到一个文件[主机名的配置文件]/etc/sysco ...
- CF832D题解
题目传送门 Description 给定一棵树上的三个点 \(a,b,c\),你要制定两条起点和终点都在这三个点中的路径,使得两条路径重叠的节点最多. Solution 感觉我的方法和大众不同,显然是 ...
- vue页面初始化
HTML: <div id="app"> <input type="" class="app" v-model=" ...
- 教你如何使用FusionInsight SqoopShell
摘要:Sqoop-shell是一个Loader的shell工具,其所有功能都是通过执行脚本"sqoop2-shell"来实现的. 本文分享自华为云社区<FusionInsig ...
- 获取元素在页面中位置 getBoundingClientRect()
DOM 原生方法getBoundingClientRect()获取元素相对视口位置 DOMRect 对象包含了一组用于描述边框的只读属性--left.top.right和bottom,单位为像素.除了 ...
- TCP拥塞控制详解
1. 拥塞原因与代价 拥塞的代价 当分组的到达速率接近链路容量时,分组经历巨大的排队时延. 发送方必须执行重传以补偿因为缓存溢出而丢弃的分组. 发送方在遇到大时延时进行的不必要重传会引起路由器利用其链 ...
- 让Dev支持C++11特性
如果你使用的是 Dev-C++ ,忘记了在设置中包含 -std=c++11是无法让Dev支持C++11特性的,导致一些C++11 中的好用的函数可能会产⽣生编译⽆无法通过的情况. 这时候你有两个方法 ...
- JacksonUtils
package com.intfish.resourceserver.util; import com.fasterxml.jackson.annotation.JsonInclude; import ...
- noip29
T1 以下的LIS代指最长不降子序列. 考场看到取模,便想到了之前写过的Medain,取模操作让序列分布均匀,对应到本题上,既然是求LIS,那它应该是有循环节的,后来打表证实确实是有. 然后,我码了个 ...