git总结一、工作中常用基础命令
首先来了解两个概念:

$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory) modified: readme.txt Untracked files:
(use "git add <file>..." to include in what will be committed) LICENSE no changes added to commit (use "git add" and/or "git commit -a")
Git非常清楚地告诉我们,readme.txt被修改了,而LICENSE还从来没有被添加过,所以它的状态是Untracked。
2、
commit qaws1a4b1e251f07e4e8658fd2b1d6d0918ca44f (HEAD -> test_qy, origin/test_all, test_all)
Author: qy <quyang@123.com.cn>
Date: Thu Apr 25 13:49:10 2019 +0800 member page change commit qwsedeed7b208331ead8cc469fd568f0d4c2da05
Author: qy <quyang@123.com.cn>
Date: Thu Apr 25 11:44:50 2019 +0800 member strategy page style change commit 417fce1c1b1171f5ed9f5a5a6cb31e44ec41da77
Author: zhangsan <zhangsan@123.com.cn>
Date: Thu Apr 25 11:26:49 2019 +0800 modify some file commit 76ytd819f40a633d4ec3fc8f9d7662c6f234c0fb
Merge: eb784ae 000efaf
Author: lisi <lisi@123.com>
Date: Thu Apr 25 11:24:13 2019 +0800 update them commit tru24ae4162639ff01346cc12c1d578bddb5a33e
Author: lisi <lisi@123.com>
Date: Thu Apr 25 11:23:00 2019 +0800 update continue
fabe1a4 (HEAD -> test_qy, origin/test_all, test_all) HEAD@{0}: checkout: moving from test_local to test_qy
ae3c43b (origin/test_local, test_local) HEAD@{1}: cherry-pick: member page change
01311f0 HEAD@{2}: checkout: moving from test_all to test_local
fabe1a4 (HEAD -> test_qy, origin/test_all, test_all) HEAD@{3}: merge test_qy: Fast-forward
3f625ee HEAD@{4}: checkout: moving from test_qy to test_all
fabe1a4 (HEAD -> test_qy, origin/test_all, test_all) HEAD@{5}: checkout: moving from test_all_0001 to dbg_qy_0001
3f625ee HEAD@{6}: checkout: moving from dbg_qy_0001 to dbg_all_0001
fabe1a4 (HEAD -> test_qy, origin/test_all, test_all) HEAD@{7}: commit: member page change
3f625ee HEAD@{8}: checkout: moving from test_local to test_qy
01311f0 HEAD@{9}: cherry-pick: member strategy page style change
3a60b15 HEAD@{10}: pull: Fast-forward
84eee19 HEAD@{11}: checkout: moving from test_all to test_local
三、回退系列命令:
1、丢弃工作区的修改(此时还没有执行git add .)
git checkout -- "文件路径" 删除指定文件的修改,执行后工作区是干净的
2、丢弃暂存区的修改 (此时已经执行了git add .但是还没有执行git commit -m "")
要用的是git reset命令,步骤如下:
git log 查看commit历史信息,拿到最新一次提交的commit-id
git reset --hard/--soft/--mixed "xxx"(这里指拿到的commit-id)
git reset命令有三个可选的参数:
git reset --hard af4d64d4d5d51709a4a0af7db01e5f2a392f9a19
此命令执行后,工作区中的所有未提交的修改都会丢失,无论是否是你想要保留的部分
-- hard这个命令是很危险的,它是git里面少数几个会丢失信息的命令,虽然也可以通过git reflog来挽救,但最好还是不要使用此参数
git reset --soft af4d64d4d5d51709a4a0af7db01e5f2a392f9a19
此命令执行后,查看文件的状态并没有做任何改变,只是代码所作用的效果不显示了
git reset af4d64d4d5d51709a4a0af7db01e5f2a392f9a19 //默认参数为mixed
Unstaged changes after reset:
M index.html
此命令执行后,将暂存区的修改撤回到了工作区,即git add .之前的状态
git status //查看文件状态,修改已经被撤回到暂存区
On branch dbg_qy_0001
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: index.html
no changes added to commit (use "git add" and/or "git commit -a")
3、将提交到分支的修改撤回到工作区(即已经执行了git commit,但还没有git push)
git log //拿到想要撤销的修改前一次的提交id
git reset af4d64d4d5d51709a4a0af7db01e5f2a392f9a19
git status //查看状态看到提交到分支上的修改以已经撤回到工作区
On branch test_qy
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: src/index.vue
no changes added to commit (use "git add" and/or "git commit -a")
4、将push到远程的个人分支的修改撤回(已经执行了git push但是还未merge到公共的repository)
这种情况同样也可以使用git reset命令来回退,但是当你回退到某一个版本再次push的时候,由于本地的版本落后于远程的版本,此时需要使用git push -f强制推送。
注意这种情况是只有你一个人使用的远程分支
5、要回退的代码已被merge(合入)到公共的repository
git log //查看提交历史信息,拿到要撤回的那次提交的commit-id
git revert "xxx"(commit-id)
若产生冲突,手动解决冲突,然后提交;
git revert 与 git reset的区别:
git reset执行后,要回退的那次提交之后的所有提交都被撤回到工作区,如果其他提交是团队其他开发人员做的,那么就会影响到其他人的代码,这样做是不合理的。
git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销
作为一次最新的提交
* git revert HEAD 撤销前一次 commit
* git revert HEAD^ 撤销前前一次 commit
* git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,
四、删除命令:
rm "文件"
rm test.txt
git总结一、工作中常用基础命令的更多相关文章
- 工作中常用Linux命令--服务器运维
工作中常用Linux命令--服务器运维 lsof查看端口使用情况 lsof -i:8080更多lsof命令使用说明:http://www.cnblogs.com/peida/archive/2013/ ...
- 工作中常用Lixu命令学习笔记
对于Linux,我是菜鸟,也是在工作中了才开始慢慢接触,用Linux的人都我都会觉得屌屌的,现在把工作中常用的一些Linux命令记录一下,供以后学习和参考. cd 这可能是我觉得Linux最简单的一个 ...
- 工作中常用Linux命令
建立软链接 ln -s 例:ln -s b a 解释:把文件夹a和文件夹b关联起来,访问文件夹a,实际访问的是问价夹b 删除软连接 rm -rf a 直接删掉a文件夹跟a和b的软连接. ...
- git 工作中常用命令(结合vscode学习git 命令)
作为一名前端开发,大家在工作中常常使用什么开发工具呢,我觉得我首选的是vscode,他配合git使用起来非常方便. 工作中常用三个命令: git终端常使用: git add . git commit ...
- 【基础】工作中常用的linux命令,经常会被面试官问到
前言 面试经常会问到一些Linux操作命令,下面就工作中常用的和面试问的频率较高的命令做详细描述. 常用命令 修改密码:passwd 用户名 切换用户名:su 用户名 查看当前路径:pwd 调整路径: ...
- git工作中常用操作总结
这篇文章主要记录下工作中常用的git操作.主要是对之前文章记录的问题做个总结,这个其实在idea中操作更加简单 别名配置 在敲git 命令时,其实可以使用别名,比如 commit可以配置为ci 下面是 ...
- 工作中常用的Linux命令:mkdir命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6076075.html (转载请注明出处) 在Linux系统中,mkdir命令用来创建一个目录或一个级联目录. ...
- 工作中常用的Linux命令:crontab命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...
- 工作中常用的Linux命令:ipcs/ipcrm命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6057100.html (转载请注明出处) ipcs 1. 命令格式 ipcs [resource-option ...
随机推荐
- SpringSecurity设置角色和权限的注意点
概念 在UserDetailsService的loadUserByUsername方法里去构建当前登陆的用户时,你可以选择两种授权方法,即角色授权和权限授权,对应使用的代码是hasRole和hasAu ...
- 在vue项目中添加全局提示框
1.写一个提示框组件:msg.vue (注明:这里用两个div的原因是成功和失败的提示不能用同一个div,因为他们可能紧接着出现,所以不能从始至终只有一个提示框在工作) 2.写一个调用此组建的js : ...
- ASP.NET Core - 开篇
由来 ASP.NET Core 是一个跨平台的高性能开源框架,ASP.NET Core第一次出现在我们眼前是以 ASP.NET vNext 命名的,然后又重新命名为ASP.NET 5,为了表明它并不是 ...
- C#语法——委托,架构的血液
本篇文章主要介绍委托的应用. 委托是大家最常见的语法了,但会用与精通之间的差别是巨大的. 一个程序员如果不能精通委托,那么,他永远无法成为高级程序员. 所以,让我们把委托刻到血液里吧. 这样,你才能称 ...
- 限制TextBox只允许输入数字和字母
设置TextBox控件属性 ImeMode=Disable ShortcutsEnabled=False VB.NET Private Sub TextBox1_KeyDown(sender As O ...
- 【开源分享】微信营销系统(第三方微信平台)github 开源
升讯威微信营销系统(微信第三方平台) 在线体验:http://wxcm.eeipo.cn/开源地址GitHub:https://github.com/iccb1013/Sheng.WeixinCons ...
- 基于html5 plus + Mui 移动App开发(一)
使用Html5 plus + Mui 进行移动App开发,有一段时间了,这几日得空,做个资讯App分享给大家. 今天主要分享主页实现,首先看下效果: 此界面主要分为:标题.内容分类列表.搜索及设置按钮 ...
- 生鲜配送管理系统_升鲜宝供应链系统V2.0 设计思想及主要模块,欢迎大家批评指点。
前言: 经过这几年的开发,升鲜宝生鲜供应链系统管理软件,终于完成C/S与B/S二个版本的开发,先主要介绍B/S版本的功能,C/S版本的功能更加完善. 升鲜宝供应链系统主要由以下几个主要端组成: ...
- Java导出Excel的Springmvc实例
@RequestMapping(value = "downloadExcel", method = RequestMethod.GET) public String downl ...
- Jmeter输出完美报告
做技术的就爱折腾, 看到哪里不够完美,就想把它改改, 使其顺眼. 同样Jmeter输出的报告实在差强人意, 截图发给领导看不够美观, 缺少统计汇总, 有什么方法给对方一个地址就可以浏览报告? 答案是肯 ...