从零开始使用git第三篇:git撤销操作、分支操作和常见冲突
从零开始使用git
第三篇:git撤销操作、分支操作和常见冲突
第三篇:从零开始使用git第三篇:git撤销操作、分支操作和常见冲突
1.撤销操作
官方文档:Git 基础 - 撤消操作
任何时候,你都有可能需要撤销刚才所做的操作。接下来,我们会介绍一些基本的撤销操作相关的命令。
请注意,有些撤销操作是不可逆的,所以请务必谨慎小心。
(1)修改最后一次提交
有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了,想要撤销刚才的提交操作,可以使用--amend选项重新提交
git commit --amend
(2)取消已经暂存的文件
举个例子,有两个修改过的文件,我们想要分开提交,但不小心用git add .全加到了暂存区域。该如何撤销暂存其中的一个文件呢?
git status的命令的输出已经告诉了我们该怎么做:
git add .
git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) modified: README.txt
modified: benchmarks.rb
取消暂存benchmarks.rb文件:
git reset HEAD benchmarks.rb
Unstaged changes after reset:
M benchmarks.rb
git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) modified: README.txt 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: benchmarks.rb
这条命令看起来有些古怪,先别管,能用就行。现在benchmark.rb文件又回到了之前已经修改未暂存的状态
(3)取消对文件的修改
如果觉得刚才对benchmark.rb的修改完全没有必要,该如何取消修改,回到修改之前的版本呢?
git status同样提示了具体的撤销方法
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: benchmarks.rb
抛弃文件修改的命令:
git checkout -- benchmarks.rb
git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) modified: README.txt
这条命令有些危险,所有对文件的修改都没有了。
记住,任何已经提交到Git的都可以被恢复。即便在已经删除的分支中的提交。或者用--amend重新改写的提交都可以被恢复。
2.分支操作
(1)在Git中,HEAD是一个指向你正在工作中的本地分支的指针(将HEAD想象为当前分支的别名)
(2)Git的实现与项目复杂度无关,它永远可以在几毫秒的时间内完成分支的创建和切换。
摘自Git官方文档:Git 分支
(留坑)
3.常见冲突及解决
(留坑...)
更多参考git官方文档:https://git-scm.com/book/zh/v1/
从零开始使用git第三篇:git撤销操作、分支操作和常见冲突的更多相关文章
- git第三篇---建立一个project
Git global setup: git config --global user.name "xx" git config --global user.email " ...
- Git(三)Git的远程仓库
一. 添加远程库 现在我们已经在本地创建了一个Git仓库,又想让其他人来协作开发,此时就可以把本地仓库同步到远程仓库,同时还增加了本地仓库的一个备份.常用的远程仓库就是github:https://g ...
- git学习(三):git暂存区
回顾之前学过的命令: git init // 初始化一个项目 git add // 将文件交给工作区 git commit // 提交修改 查看提交日志: git log // 查看提交日志 git ...
- Git学习之路(6)- 分支操作
▓▓▓▓▓▓ 大致介绍 几乎所有的版本控制系统都会支持分支操作,分支可以让你在不影响开发主线的情况下,随心所欲的实现你的想法,但是在大多数的版本控制系统中,这个过程的效率是非常低的.就比如我在没有学习 ...
- 【Git的基本操作十】远程库分支操作
远程库分支操作 1. 推送分支 在本地库新建分支 git branch [新分支名] 如创建一个develop分支: git branch develop 推送分支(将新分支发布在github上) g ...
- Git实战指南----跟着haibiscuit学Git(第三篇)
笔名: haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...
- Git使用三:git的使用流程
先创建仓库 创建一个文件夹,作为仓库使用 初始化仓库,在仓库目录的命令行下输入:git init 第一步:创建一个文件,并写入内容,这里写入内容的时候,要把编码设置为utf-8 第二步:输入命令将文件 ...
- 第三篇(那些JAVA程序BUG中的常见单词)
illegal modifier for parameter xxx; only final is permitted 参数xxx的修饰符非法:只允许final illegal 非法的 modifie ...
- app测试自动化之混合APP(之前的三篇为原生APP的操作)
混合开发的App中,经常会有内嵌的H5页面:定位方法与原生APP不同,需要上下文切换 #获取所有上下文contexts=dr.contextsprint(contexts)#打印当前上下文(有点问题应 ...
随机推荐
- vim-插入格式化时间
最近一直在搞vimrc的配置.其中有一点就是,我想要实现代码快速注释的功能.而这个功能中的一个关键点就是,我要获得系统当前的时间,然后插入到我的注释里面.我知道vimrc支持shell命令,既使用:r ...
- IIS文件上传大小修改配置说明
原因:Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大小时30M). 解决:IIS7更改asp.net文件上传大小限制 步骤如下: 1. 修改I ...
- Whitening
The goal of whitening is to make the input less redundant; more formally, our desiderata are that ou ...
- 抓包神器Fiddler之Https请求随心转
随着AppleStore对APP的审核越来越严格,客户端请求服务端API的方式大多数都变更为了https,在更安全的同时又引起了另外一个问题——本地抓包开发调试的不便. 一般来说,我们在开发API的时 ...
- FreeModbus TCP
一.Modbus TCP协议格式 Modbus TCP协议数据格式如下图所示: MBAP报文头: Modbus TCP与Modbus RTU相比,没有检验码,也没有所谓的地址码,并且在RTU协议的基础 ...
- FZU 1962 新击鼓传花游戏
新击鼓传花游戏 Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on FZU. Original ID: 19 ...
- 洛谷 P2837 晚餐队列安排
P2837 晚餐队列安排 题目背景 Usaco Feb08 Bronze 题目描述 为了避免餐厅过分拥挤,FJ要求奶牛们分2批就餐.每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想,所有第2批就餐 ...
- VmWare 与 宿主主机通信 STEP BY STEP (适用于刚開始学习的人)
基本原理 在虚拟机中有三种通信方式,例如以下图所看到的 1. Bridged(桥接模式) 在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机,它能够訪问网内不论什么一台机器只是你 ...
- the way to go
推荐两本书 关于go语言的 The way to go Go语言编程高清完整版电子书.pdf
- JS正则 replace()方法全局替换变量(可以对变量进行全文替换)
转至:https://www.cnblogs.com/jasonlam/p/7070604.html var text = "饿~,23333.饿~,测试yongde"; var ...