配置化命令

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命令集的更多相关文章

  1. 你想找的Python资料这里全都有!没有你找不到!史上最全资料合集

    你想找的Python资料这里全都有!没有你找不到!史上最全资料合集 2017年11月15日 13:48:53 技术小百科 阅读数:1931   GitHub 上有一个 Awesome - XXX 系列 ...

  2. [No00004F]史上最全Vim快捷键键位图(入门到进阶)vim常用命令总结

    在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...

  3. nacos 实战(史上最全)

    文章很长,而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三 ...

  4. 史上最全Windows版本搭建安装React Native环境配置

    史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...

  5. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文  http: ...

  6. 史上最全的maven pom.xml文件教程详解

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  7. GitHub上史上最全的Android开源项目分类汇总 (转)

    GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...

  8. 吐血总结|史上最全的MySQL学习资料!!

    在日常工作与学习中,无论是开发.运维.还是测试,对于数据库的学习是不可避免的,同时也是日常工作的必备技术之一.在互联网公司,开源产品线比较多,互联网企业所用的数据库占比较重的还是MySQL. 在刚刚出 ...

  9. 优秀后端架构师必会知识:史上最全MySQL大表优化方案总结

    本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/1190000006158186 1.引言   MySQL作为开源技术的代表作之一,是 ...

随机推荐

  1. php header 设置文件下载

    控制器 php 代码: $filepath = "http://www.jiesen365.com/uploadfile/20150519044903-897.pdf"; //下载 ...

  2. 自学linux——7.Linux的自有服务(进阶篇)

    linux自有服务 1.设置主机名 (1)临时设置主机名,需要切换用户(su)使之生效 #hostname主机名 (2)永久设置主机名,需要重启 先找到一个文件[主机名的配置文件]/etc/sysco ...

  3. CF832D题解

    题目传送门 Description 给定一棵树上的三个点 \(a,b,c\),你要制定两条起点和终点都在这三个点中的路径,使得两条路径重叠的节点最多. Solution 感觉我的方法和大众不同,显然是 ...

  4. vue页面初始化

    HTML: <div id="app"> <input type="" class="app" v-model=" ...

  5. 教你如何使用FusionInsight SqoopShell

    摘要:Sqoop-shell是一个Loader的shell工具,其所有功能都是通过执行脚本"sqoop2-shell"来实现的. 本文分享自华为云社区<FusionInsig ...

  6. 获取元素在页面中位置 getBoundingClientRect()

    DOM 原生方法getBoundingClientRect()获取元素相对视口位置 DOMRect 对象包含了一组用于描述边框的只读属性--left.top.right和bottom,单位为像素.除了 ...

  7. TCP拥塞控制详解

    1. 拥塞原因与代价 拥塞的代价 当分组的到达速率接近链路容量时,分组经历巨大的排队时延. 发送方必须执行重传以补偿因为缓存溢出而丢弃的分组. 发送方在遇到大时延时进行的不必要重传会引起路由器利用其链 ...

  8. 让Dev支持C++11特性

    如果你使用的是 Dev-C++ ,忘记了在设置中包含 -std=c++11是无法让Dev支持C++11特性的,导致一些C++11 中的好用的函数可能会产⽣生编译⽆无法通过的情况. 这时候你有两个方法 ...

  9. JacksonUtils

    package com.intfish.resourceserver.util; import com.fasterxml.jackson.annotation.JsonInclude; import ...

  10. noip29

    T1 以下的LIS代指最长不降子序列. 考场看到取模,便想到了之前写过的Medain,取模操作让序列分布均匀,对应到本题上,既然是求LIS,那它应该是有循环节的,后来打表证实确实是有. 然后,我码了个 ...