【Git】git常用命令大全

🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的专栏《Git》。🎯🎯

👉点击这里,就可以查看我的主页啦!👇👇

Java方文山的个人主页

🎁如果感觉还不错的话请给我点赞吧!🎁🎁

💖期待你的加入,一起学习,一起进步!💖💖

请添加图片描述

 

1.强制推送

(慎用,除非你认为其他冲突等可以丢弃 或者不是很重要)

git push -- force

2.创建文件等小命令

touch a // 创建一个a文件
echo 1234 >> a // 把1234这个内容放入a文件
cat a // 打开a文件 读取出a文件中的内容
mkdir test // 创建test文件夹
rm 文件名 // 删除文件
pwd // 打印当前工作路径

3.安装git的命令

安装git bash和git GUI 我们完全也可以使用git GUI来提交版本 与sourcetree等功能相同

gitk // 用git命令快速打开git GUI

4.文件信息

ls // 查看当前路径下面的所有文件名
ls 文件夹名 // 查看对应文件夹中的内容
ls -l // 拉出最近git提交记录以及对应修改的文件名
ls -l -a // 拉出最近git提交记录以及对应修改的文件名,隐藏的文件也会显示

5.cd快速切换路径

cd ~ // 将工作路径快速切换到root
cd - // 将工作路径切换到上一状态
cd ../ // 切回到上一个工作路径
cd 文件夹名 // 进入某个目录
cd / // 进入根目录

6. vim模式

vim 文件名 // 新建一个文件
i 插入内容
按下esc :wq 保存并退出
按下esc :q 直接退出
vim 模式下 文件中#号开头的为注释
.project 忽略.project文件
*.obj 或者 *.exe 忽略一类文件 例如以.obj .exe 结尾的文件
 
git check-ignore -v .project 查看ignore中.project的位置
 

7.常用git 命令

git init // 初始化 在工作路径上创建主分支
git clone 地址 // 克隆远程仓库
git clone -b 分支名 地址 // 克隆分支的代码到本地
git status // 查看状态
git add 文件名 // 将某个文件存入暂存区
git checkout -- file // 撤销工作区的修改 例如git checkout -- readMe.txt 将本次readMe.txt在工作区的修改撤销掉
git add b c //把b和c存入暂存区
git add . // 将所有文件提交到暂存区
git add -p 文件名 // 一个文件分多次提交
git stash -u -k // 提交部分文件内容 到仓库 例如本地有3个文件 a b c 只想提交a b到远程仓库 git add a b 然后 git stash -u -k 再然后git commit -m "备注信息" 然后再push push之后 git stash pop 把之前放入堆栈的c拿出来 继续下一波操作
git commit -m "提交的备注信息"  // 提交到仓库
若已经有若干文件放入仓库,再次提交可以不用git add和git commit -m "备注信息" 这2步, 直接用
git commit -am "备注信息" // 将内容放至仓库 也可用git commit -a -m "备注信息"
* git commit中的备注信息尽量完善 养成良好提交习惯 例如 git commit -m "变更(范围):变更的内容"

8.存储密码凭证 设置别名 获取config信息以及配置

git config --list // 获取config信息
git config --global core.safecrlf false // 去掉git add 命令后 出现的一堆CR LF提示信息
其中CR是回车的意思 LF是换行
git config --global user.name"your name" // 设置username
git config --global user.email"your_email@youremail.com" // 设置邮箱
git config --global credential.helper wincred // 存储凭证 (可用于输入一次用户密码后,不再输入 有时我们已经用SSH key 绑定关联好了 但是每次git提交的时候 还是需要你输入用户名密码 在这个时候 敲入这个命令 将凭证存储起来 用户名密码就不需要再次输入了)
git config --global alias.ci commit // 将commit命令设置别名ci git commit命令将由git ci来代替

9.查看git常用命令

git helper -a // 查看全部git子命令

10.逐行查看文件的修改历史

git blame 文件名 // 查看该文件的修改历史
git blame -L 100,10 文件名 // 从100行开始,到110行 逐行查看文件的修改历史

11.清除

git clean -n // 列出打算清除的档案(首先会对工作区的内容进行提示)

git clean -f // 真正的删除

git clean -x -f // 连.gitignore中忽略的档案也删除

git status -sb (sb是 short branch) // 简洁的输出git status中的信息

12.删除放入暂存区文件的方法(已commit后)

git rm 文件名 // 将该文件从commit后撤回到add后

git reset HEAD^ --hard // 删除后 可以用git rm 文件名再回撤一步

13.修改文件名以及移动

git mv a b // 把a文件名字改成b 并且直接放入git add后的暂存区

git mv b ./demos/ // 把b文件移动到demos文件夹下

14.对比工作区,暂存区,仓库的差异

git diff // 查看变更 工作区与暂存区的差异比对

git diff --cached // 暂存区与提交版本的差异

git diff HEAD // 工作区与仓库中最后一次提交版本的差别

git diff 版本哈希值 版本哈希值 // 查看这2个版本哈希之间的区别

或者 git diff HEAD~数字 HEAD~数字


git diff tt 就是倒数第5个版本与第一个版本之间的差异

git diff --cached tt 暂存区与倒数第5个版本之间的比对

15.查看提交信息

git show HEAD // 查看最后一次提交修改的详细信息 也可以用git show 哈希值 查看对应的内容

git show HEAD^ // 查看倒数第二次的提交修改详细信息

git show HEAD^^ 或者git show HEAD~2 查看前2次变更

git show HEAD 或 git show 哈希值 或者git show tag(标签名) 都可以查看最近一次提交的详细信息

16.查看信息

git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short

// 获取git log里的树形详细信息 包括hasg 日期 提交信息 提交人等

git log --oneline //拉出所有提交信息 q是退出

git log -5 // 查看前5次的提交记录

git log --oneline -5 // 打印出的日志里面只有哈希值和修改的内容备注

git log 文件名 // 查看该文件的提交

git log --grep // 想过滤看到的内容 过滤日志

git log -n // 查看近期提交的n条信息内容

git log -p // 查看详细提交记录

17.变基操作,改写历史提交 把多次提交合并起来

git rebase -i HEAD~3 变基之后的哈希值与之前的不同 证明变基是重新做的提交 把多次提交合并成了几次提交

18.回撤操作

git commit --amend -m "提交信息" // 回撤上一次提交并与本次工作区一起提交

git reset HEAD~2 --hard // 回撤2步

git reset --files // 从仓库回撤到暂存区

git reset HEAD // 回撤暂存区内容到工作目录

git reset HEAD --soft 回撤提交到暂存区

git reset HEAD --hard // 回撤提交 放弃变更 (慎用)

git reset HEAD^ // 回撤仓库最后一次提交

git reset --soft HEAD^ // 将执行git commit 并没有执行git push到远程仓库的内容 回撤到工作区 并且保存在工作区

git reset --hard HEAD^ // 将执行git commit 并没有执行git push到远程仓库的内容 回撤并且不保存

// 注意 在window电脑端 可能会出现执行git reset --hard HEAD^命令时 提示More? 所以针对windows 我们回撤内容需要键入git reset --hard HEAD^^才可以 如果我们git commit提交2次 想把2次都回撤到工作区保存 可以使用git reset --soft HEAD~2

git reset --hard commitid // 回撤到该次提交id的位置 回撤后本地暂存区可能有内容 本地仓库有要同步的内容 此时 丢弃掉暂存区的内容 并且强制将本地的内容推送至远程仓库 执行下面的命令 git push -u -f origin 分支名 或者git push -u -f这样就可以完全回撤到提交id的位置

git reset --soft commitid // 回撤到该次提交id的位置 并将回撤内容保存在暂存区

git push -f -u origin 分支名 所有内容都回撤完了 将回撤后的操作强制推送到远程分支

git push origin/分支名 --force 强制将本地回撤后的操作 强制推送到远程分支

19.标签操作

git tag // 查看列出所有打过的标签名 例如V1.1 V1.11 V1.12 V1.13等

git tag -d 标签名 // 删除对应标签 只是删除了本地的

git push origin :refs/tags/远程标签名 // 删除远程仓库的标签 可以在删除本地标签后 执行这个操作 同步远程

git tag 标签名字 // 在当前仓库打个标签

git tag 标签名 commitid // 给已知提交id的版本打标签 例如git tag v1.1.1 6f8f25fcf57a17e6c72b33f6bca0797fab15ff8b // 给历史提交打V1.1.1的tag标签 这里的commitid可以缩写 缩写成前6位就可以 例如git tag V1.1.1 6f8f25 一样可以给这个提交id打上tag

git tag -l // 过滤tag 例如 git tag -l "V1.1*" // V1.1 V1.11 可以过滤前面是V1.1开头的内容

git show 标签名称 // 查看tag的详细信息 包括commitid 作者信息 日期 内容

git push origin 标签名称 // 同步这个tag到远程服务器 默认tag是打在本地的 这个命令可以把它推到远程

git push origin --tags // 将本地所有tag推送到远程服务器

git pull --tags // 把远程仓库的标签也拉取下来

git tag foo -m "message" // 在当前提交上,打标签foo 并给message信息注释

git tag 标签名 哈希值 -m "message" // 在某个哈希值上打标签并且写上标签的信息

git tag foo HEAD~4 // 在当前提交之前的第4个版本上 打标签foo



git stash // 把暂存区的内容 暂时放在其他中 使暂存区变空

git stash list // 查看stash了哪些存储

git stash pop // 将stash中的内容恢复到当前目录,将缓存堆栈中的对应stash删除

git stash apply // 将stash中的内容恢复到当前目录,不会将缓存堆栈中的对应stash删除

git stash clear // 删除所有缓存的stash

git reset --hard // 回撤git stash pop的内容

20.分支

git branch 分支名 // 新建分支

git branch // 查看当前所有分支

git checkout 分支名 // 检出分支

git checkout -b 分支名 // 创建并切换分支

git checkout commitId 文件名(文件路径下的文件名) 还原这个文件到对应的commitId的版本

(例如src/page/attendance/attendanceSum.vue我想把它还原到2个版本之前 首先git log src/page/attendance/attendanceSum.vue找到对应想要还原的版本

复制版本提交的commitID 然后执行git checkout commitID src/page/attendance/attendanceSum.vue

这样就把attendanceSum.vue这个单个文件 还原到了对应版本)

git branch -v // 查看分支以及提交hash值和commit信息

git merge 分支名 // 把该分支的内容合并到现有分支上

git cherry-pick commitId // 把其他分支的某一次提交内容合并到当前分支 这个在我们平时多分支开发中很常用

git branch -d 分支名 // 删除分支

git branch -D 分支名 // 强制删除 若没有其他分支合并就删除 d会提示 D不会

git branch -m 旧分支名 新分支名 // 修改分支名

git branch -M 旧分支名 新分支名 // 修改分支名 M强制修改 若与其他分支有冲突也会创建(慎用)

git branch -r // 列出远程分支(远程所有分支名)

git branch -a // 查看远程分支(列出远程分支以及本地分支名 远程分支会以remote/origin/分支名这种形式展示 红色标识)

git branch | xargs git branch \-d //删除当前分支外的所有分支

git branch // 查看本地分支

git reflog show --date=iso <branch name> // 查看分支创建时间 例如git reflog show --date=iso origin/feature-PCDEC-6375 输出 88e22885 (HEAD -> feature-PCDEC-6375, origin/feature-PCDEC-6375, origin/EC-master, EC-master) refs/remotes/origin/feature-PCDEC-6375@{2021-07-27 11:31:23 +0800}: fetch: storing head 创建时间就是2021-07-27 11:31:23

git fetch // 更新remote索引

git push -u origin 分支名 // 将本地分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push 也可解决 git建立远程分支关联时出现fatal ... upstram的问题

git push origin --delete 分支名 (将git branch -D 分支名 删掉的分支 同步到远程主机 将origin/分支名的该分支也删除掉)

git remote show origin 查看remote地址,远程分支,还有本地分支与之相对应关系等信息(结合git branch -a使用)

git remote prune origin 删除远程仓库不存在的分支 (git branch -a使用)

git reflog show --date=iso 分支名 // 查看指定分支的创建时间 以及更改记录等

21.git仓库迁移

// 首先在当前项目主分支先执行git pull 把代码更新为最新

git remote set-url origin <新的仓库名>

git push -u -f origin

git push -u -f origin --all // 把所有分支迁移过去

git push -u -f origin --tags // 把所有tag迁移过去

// 然后去拉取新的仓库代码就可以了 如果新仓库之前拉取过了

重新仓库迁移 里面分支没同步的话 执行 git fetch试一下 同步过来

 该文章转载自git常用命令大全

 请添加图片描述

到这里我的分享就结束了,欢迎到评论区探讨交流!!

💖如果觉得有用的话还请点个赞吧 💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/133811.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

afsim 下载链接

afsim是一个通用的建模框架&#xff0c;能够构建典型的虚拟威胁环境和相关模型。能够以可视化形式分析软件仿真结果&#xff0c;显示平台、路由、传感器区域等内容&#xff0c;能够基于事件生成图表&#xff0c;进行结果统计&#xff0c;能够按类型进行统计分析。 苦于网上没有…

【Git】Git分支与应用分支

一&#xff0c;Git分支 1.1 理解Git分支 在 Git 中&#xff0c;分支是指一个独立的代码线&#xff0c;并且可以在这个分支上添加、修改和删除文件&#xff0c;同时作为另一个独立的代码线存在。一个仓库可以有多个分支&#xff0c;不同的分支可以独立开发不同的功能&#xff0…

maven教程

1. Maven概述 1.1 Maven的功能 1、Maven 作为依赖管理工具 随着我们使用越来越多的框架&#xff0c;或者框架封装程度越来越高&#xff0c;项目中使用的jar包也越来越多。项目中&#xff0c;一个模块里面用到上百个jar包是非常正常的。jar包所属技术的官网通常是英文界面&am…

极智芯 | 存算一体 弯道超车的希望

欢迎关注我的公众号 [极智视界]&#xff0c;获取我的更多经验分享 大家好&#xff0c;我是极智视界&#xff0c;本文分享一下 存算一体 弯道超车的希望。 邀您加入我的知识星球「极智视界」&#xff0c;星球内有超多好玩的项目实战源码和资源下载&#xff0c;链接&#xff1a;…

【C++笔记】优先级队列priority_queue的模拟实现

【C笔记】优先级队列priority_queue的模拟实现 一、优先级队列的介绍与使用方式1.1、优先级队列介绍1.2、优先级队列的常见使用 二、优先级队列的模拟实现1.0、仿函数的介绍1.1、构造函数1.2、优先级队列的插入push1.3、优先级队列的删除(删除堆顶元素)1.4、获取堆顶元素1.5、判…

MATLAB仿真通信系统的眼图

eyediagram eyediagram(complex(used_i,used_q),1100)

【Java 进阶篇】Java 中 JQuery 对象和 JS 对象:区别与转换

在前端开发中&#xff0c;经常会涉及到 JavaScript&#xff08;JS&#xff09;和 jQuery 的使用。这两者都是前端开发中非常重要的工具&#xff0c;但它们之间存在一些区别。本文将详细介绍 Java 中的 JQuery 对象和 JS 对象的区别&#xff0c;并讨论它们之间的转换方法。 1. …

Amazon Aurora MySQL 与 Amazon Redshift 的 Zero ETL 集成已全面可用,一起轻松上手!

“数据是应用、流程和商业决策的核心。” 亚马逊云科技数据库、 数据分析和机器学习全球副总裁 Swami Sivasubramanian 如今&#xff0c;客户常用的数据传输模式是建立从 Amazon Aurora 到 Amazon Redshift 的数据管道。这些解决方案能够帮助客户获得新的见解&#xff0c;进而…

【C/C++笔试练习】内联函数、函数重载、调用构造函数的次数、赋值运算符重载、静态成员函数、析构函数、模板定义、最近公共祖先、求最大连续bit数

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;内联函数&#xff08;2&#xff09;函数重载&#xff08;3&#xff09;调用构造函数的次数&#xff08;4&#xff09;赋值运算符重载&#xff08;5&#xff09;静态成员函数&#xff08;6&#xff09;调用构造函数的次数…

微信小程序和H5之间互相跳转、互相传值

微信小程序和内嵌 H5 之间来回跳转&#xff0c;来回交互。 1 微信小程序跳转 H5 1.2. web-view 微信小程序官方提供了 web-view 组件来实现微信小程序跳转到 H5 页面&#xff0c;实现的方式也很简单&#xff0c;具体实现方式如下&#xff1a; 1、新建一个页面用来单独存放 we…

网页推理游戏

目录 python challenge &#xff08;0&#xff09; &#xff08;1&#xff09; &#xff08;2&#xff09; The Riddle &#xff08;1&#xff09; &#xff08;2&#xff09; &#xff08;3&#xff09; &#xff08;4&#xff09; Nazo &#xff08;1&#xff09;…

宋浩高等数学笔记(三)微分中值定理

首先是考研大纲包含的内容&#xff1a; 1.理解并会用罗尔(Rolle)定理、拉格朗日(Lagrange)中值定理和泰勒(Taylor)定理&#xff0c;了解并会用柯西(Cauchy)中值定理. 2.掌握用洛必达法则求未定式极限的方法. 3.理解函数的极值概念&#xff0c;掌握用导数判断函数的单调性和求函…

事务AOP

1事务&#xff1a; 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位。事务会把所有的操作作为一个整体&#xff0c;一起向数 据库提交或者是撤销操作请求。所以这组操作要么同时成功&#xff0c;要么同时失败。 1.1实现&#xff1a;Transactional注解 Transact…

基于SSM的网络书店商城

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

电脑想要微信多开——打开多个微信的必胜法宝!

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2023.11.11 Last edited: 2023.11.11 导读&#xff1a;在生活当中经常遇到工作和生活相撞的事情&#xff0c;导致在处理私人的事情同时不得不处理…

分销cps外卖券电影票小程序开发

电影票外卖劵分销CPS小程序开发作 我们致力于为消费者提供优质、便捷的外卖服务。现在&#xff0c;我们推出全新的电影票外卖劵分销CPS小程序&#xff0c;以及更多具有深度和专业度的功能和服务&#xff0c;以满足消费者更高的生活服务需求。 首先&#xff0c;我们的分销模式…

服务日志性能调优,由log引出一系列的事故

只有被线上服务问题毒打过的人才明白日志有多重要&#xff01; 谁赞成&#xff0c;谁反对&#xff1f;如果你深有同感&#xff0c;那恭喜你是个社会人了&#xff1a;&#xff09; 日志对程序的重要性不言而喻&#xff0c;轻巧、简单、无需费脑&#xff0c;程序代码中随处可见…

Python 使用tkinter复刻Windows记事本UI和菜单功能(一)

下一篇&#xff1a;Python 使用tkinter复刻Windows记事本UI和菜单&#xff08;二&#xff09;-CSDN博客 介绍&#xff1a; Windows操作系统中自带了一款记事本应用程序&#xff0c;通常用于记录文字信息&#xff0c;具有简单文本编辑功能。Windows的记事本可以新建、打开、保…

探索云世界的无限可能

文章目录 每日一句正能量前言云计算的定义和现状云计算能做什么&#xff1f;云计算市场的新特征需求方向&#xff1a;云计算的基础服务已经稳固&#xff0c;行业解决方案是新的发力点模式方向&#xff1a;分布式云模式方向&#xff1a;边缘计算是一朵新的云技术方向&#xff1a…

SQL 聚合函数

前言 SQL中的聚合函数是对一组值执行计算&#xff0c;并返回单个值的函数。 常用的聚合函数有&#xff1a; 函数作用AVG&#xff08;&#xff09;求平均值MAX&#xff08;&#xff09;求最大值MIN&#xff08;&#xff09;求最小值SUM&#xff08;&#xff09;求和COUNT&…