0

0

git操作常用命令的汇总

零下一度

零下一度

发布时间:2017-07-17 15:11:17

|

1635人浏览过

|

来源于php中文网

原创

常用命令汇总

一、                       回退到某一个节点,通过如下命令:

Git reset –hard HASH 返回到某一个节点,不保留修改 如:

Git reset –hard HASH 返回到某一节点,保留修改。

 

二、                       本地所有的修改。没有提交的,都返回到原来的状态。

Git checkout .

Git checkout 版本库   表示切换版本库如:git checkout dev 切换到dev版本库

Git checkout 文件地址  表示取消该文件的修改如:git checkout backend/controller/site 

三、                       查看提交日志

Git log

四、                       查看分支

Git branch 不带参数:列出本地分支,当前所在的分支前面会有一个*号

五、                       处理LF问题

问题出现的原因是window和Linux空格和换行转化的不一致导致的,处理办法如下:

配置全局变量git config --global core.autocrlf false

查看全局变量 git config –global –l来查看全局变量

mkdir learngit   //创建一个文件夹

cd learngit    //切换当前目录

pwd     //显示当前目录完整路径

git init   //初始化目录

ls -ah   //显示当前目录所有文件,包括隐藏文件

cd.>readme.txt  //创建一个空文件

git add readme.txt  //把文件添加到git仓库

git commit -m “wrote a readme file”  //提交文件,加上改动说明

git status  //查看当前仓库文件改动状态

git diff    //是工作区(work dict)和暂存区(stage)的比较

git diff --cached  //是暂存区(stage)和分支(master)的比较

修改文件内容后git status会提示use "git add" and/or "git commit -a" 注意先add后commit,不可以直接commit

git log   //查看git提交记录,包括时间和提交人等详细信息

git log --pretty=oneline  //只查看版本号和提交说明

git reset --hard HEAD^  //回滚上个版本

git reset --hard HEAD^^   //回滚上上个版本

git reset --hard HEAD~100  //回滚前100个版本

git reset --soft HEAD //回退时不重置缓存区和工作区

git reset --mixed HEAD //回退时重置缓存区, 默认选项

git reset --hard HEAD //回退时重置缓存区和工作区

git reset //不指定HEAD, 用来清空缓存区的修改

git reset filename //清空缓存区指定文件的修改

git reset --hard //不指定HEAD, 用来清空工作区和缓存区的修改

git reset --hard filename //清空工作区和缓存区指定文件的修改

cat readme.txt  //查看文件内容

 

回滚后如果想撤回,有两种方式

1)需要在没有关闭原来的终端窗口,找回最新的版本号,输入前面几位数字,例如

git reset --hard ec6980a

2)关闭了终端窗口,重新打开,输入git reflog ,查看操作的每一条记录,找回版本号回滚

 

git checkout -- file //撤消工作区操作,有两种情况,1、未添加到缓存区前,是撤消本地工作区修改,2、已添加缓存区后,是撤消缓存后的修改,还原缓存的版本

git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

git checkout branch //切换branch, 同时重置缓存区和工作区, 如果工作区有修改没有提交, 需要先commit或stash

git checkout branch --force //切换branch, 同时重置缓存区和工作区

git checkout --force //不指定branch, 用来清空工作区的修改(缓存区不变, 如果之前有add, 则工作区与缓存区一致)

 

git reset HEAD fileName  //可以把暂存区的修改撤销掉(unstage)

 

rm test.txt  //文件管理器上删除文件,注意本地删除要与仓库对应

PHP+MySQL商业网站架设实务
PHP+MySQL商业网站架设实务

第1章Linux入门   1-1操作系统的特性   1-2安装设置   1-2-1硬盘分区   1-2-2设置LILO   1-2-3网络地址和时区设置   l-2-4设置系统管理员及一般用户的帐号密码   1-2-5系统安全认证   l-2-6选取安装套件   1-2-7设置显示卡及测试Xwindows   l-2-8开始安装套件   l-3常用命令   l-4网络基本设

下载

git rm text.txt   //删掉远程仓库文件,然后提交git commit

git checkout -- test.txt //假设本地rm误删了文件,可以用指令从仓库复制一份最新到本地,用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

 

ssh-keygen -t rsa -C “liwenxin@foreveross.com"  //设置本地关联的帐号信息 ,一路回车,不要设密码直接为空。

open ~/.ssh //mac打开主目录的ssh

cd ~/.ssh    //如果前面的步骤不小心输入了密码,可以参照以下方式重新设为空密码

ssh-keygen -p -f id_rsa  //按要求输入一次旧密码两次新密码

 

git remote add origin git@github.com:gz-jam/learngit.git  //替换成你自己的GitHub账户名,本地关联远程库

git remote rm origin //如果关联错了 或者 需要重新绑定 

git remote add origin git@github.com:michaelliao/learngit.git  //可以重新绑定

 

git push -u origin master  //本地库的所有内容推送到远程库,输入yes确认,把当前分支master推送到远程,由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

git push origin master   //第二次开始可以不用 -u

 

git clone git@github.com:michaelliao/gitskills.git  //克隆远程仓库,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。例如https://github.com/gz-jam/gitskills.git

 

git checkout -b dev //创建分支并切换当前分支到dev,相当于执行了两条指令,如git branch dev 和 git checkout dev

git branch //查看当前项目的所有分支,前面有*代表当前生效的分支

git merge dev  //用于合并指定分支到当前分支

git branch -d dev  //合并后可以考虑删除多余项目分支

git branch -D dev  //分支提交文件未合并,如果删除会提示尚未合并,是否要强行删除 注意大写D

 

当两边分支各自在相同文件有提交内容,Git无法执行“快速合并”,此时需要先执行git status,Git用>>>>>>标记出不同分支的内容,调整完后重新git add 文件,然后git commit提交文件即可解决冲突

git log --graph --pretty=oneline --abbrev-commit  //可以看到分支的合并情况

git log --graph //这命令也可以看到分支合并图

 

git merge --no-ff -m "merge with no-ff" dev  //禁用Fast forward模式,Git就会在merge时生成一个新的commit

 

git stash  //当前分支工作未完成但又不想提交仓库,可先用指令保存,保证切换其它分支不会导致代码丢失

git stash list //查看stash内容,恢复的方式有两种,一是用git stash apply stash@{0}恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;另一种方式是用git stash pop,恢复的同时把stash内容也删了

 

git remote  //查看远程库的信息

git remote -v   //显示更详细的信息

git push origin master //推送分支,就是把该分支上的所有本地提交推送到远程库,推送时,要指定本地分支

本地新建的分支如果不推送到远程,对其他人就是不可见的

从本地推送分支,使用git push origin branch-name

git checkout -b dev origin/dev //创建远程origin的dev分支到本地,默认分支master

 

git push  //发生冲突的时候,先git pull拉取代码

git pull //如果失败的话,提示“no tracking information”,原因可能是没有指定本地dev分支与远程origin/dev分支的链接

git branch --set-upstream-to=origin/dev dev  //设置dev和origin/dev的链接

合并有冲突,需要手动解决,解决的方法如前面所说,git status,然后手动修复,再git add 和git commit ,最后git push

 

git tag v1.0  //commit号太长不好记,可以在分支上打标签

git tag v0.9 6224937  //在分支上为指定的的commit号打上标签

标签不是按时间顺序列出,而是按字母排序的。可以用git show 查看标签信息

例如  git show v0.9

git tag -a v0.1 -m "version 0.1 released" 3628164  //创建带有说明的标签,用-a指定标签名,-m指定说明文字

git tag -d v0.1  //标签打错了,也可以删除

创建的标签都只存储在本地,不会自动推送到远程。如果要推送某个标签到远程,使用命令git push origin

例如: git push origin v1.0

或者,一次性推送全部尚未推送到远程的本地标签

例如: git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,git tag -d v0.9;然后,从远程删除。删除命令也是push,但是格式如下git push origin :refs/tags/v0.9 或 git push origin --delete tag v0.9

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

145

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

100

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

34

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

13

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

19

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

27

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

11

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

371

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

28

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.2万人学习

Git 教程
Git 教程

共21课时 | 3.6万人学习

Django 教程
Django 教程

共28课时 | 4.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号