文档章节

7个重要的Git使用技巧

阿振
 阿振
发布于 2016/05/16 08:52
字数 861
阅读 1177
收藏 50
git

通常,大部分时间我们都只会用到add、commit、branch和push/pull这些命令。但如果自己往仓库中添加了错误的文件,或是将代码提交到了错误的分支,而且提交信息还写错了的话,自己怎样才能取消之前的操作?

修改错误的提交信息(commit message)

下面这个命令可以让你编辑最近一次的提交信息

$ git commit --amend -m ”YOUR-NEW-COMMIT-MESSAGE”

下面的命令强制推送这次的代码提交

$ git push <remote> <branch> --force

提交之前撤销 git add

如果你往暂存区(staging area)中加入了一些错误的文件,但是还没有提交代码。你可以使用一条简单的命令就可以撤销

$ git reset <文件名>

或者如果你想从暂存区移除所有没有提交的修改:

$ git reset

撤销最近一次代码提交

有时候你可能会不小心提交了错误的文件或一开始就遗漏了某些东西

$ git reset --soft HEAD~1
$ git add -A .
$ git commit -c ORIG_HEAD

行第一个命令时,Git会将HEAD指针后移到此前的一次提交,之后你才能移动文件或作必要的修改。

然后你就可以添加所有的修改,而且当你执行最后的命令时,Git会打开你的默认文本编辑器,其中会包含上一次提交时的信息

Git仓库撤销至前一次提交时的状态

“撤销”(revert)在许多情况下是非常有必要的——尤其是你把代码搞的一团糟的情况下

$ git checkout <SHA>

<SHA>是你想查看的提交拥有的哈希值(Hash Code)中前8至10个字符

这个命令会使<HEAD>指针脱离(detach),可以让你在不检出(check out)任何分支的情况下查看代码

撤销合并(Merge)

要想撤销合并,你可能必须要使用恢复命令(HARD RESET)回到上一次提交的状态。“合并”所做的工作基本上就是重置索引,更新working tree(工作树)中的不同文件,即当前提交()代码中与HEAD游标所指向代码之间的不同文件;但是合并会保留索引与working tree之间的差异部分(例如那些没有被追踪的修改)

$ git checkout -b <SHA>

从当前Git分支移除未追踪的本地文件

假设你凑巧有一些未被追踪的文件(因为不再需要它们),不想每次使用git status命令时让它们显示出来

$ git clean -f -n #1  // 选项-n将显示执行下面的命令时将会移除哪些文件
$ git clean -f #2  // 该命令会移除所有上面的命令中显示的文件
$ git clean -fd #3  // 如果你还想移除文件件,请使用选项-d
$ git clean -fX #4  // 如果你只想移除已被忽略的文件,请使用选项-X
$ git clean -fx #5  // 如果你想移除已被忽略和未被忽略的文件,请使用选项-x

删除本地和远程Git分支

$ git branch --delete --force <branchName>  // 删除本地分支
$ git push origin --delete <branchName>  // 删除远程分支

© 著作权归作者所有

阿振
粉丝 10
博文 55
码字总数 58791
作品 0
成都
高级程序员
私信 提问
加载中

评论(1)

catroll
catroll
只是几个基本的 Git 知识点而已 😑
Git 12 岁了,为你送上 12 个 Git 的使用技巧!

使用这12个Git的诀窍与技巧来令你的版本控制经验更加有用。 Git,一个分布式版本控制系统,它已经成为了开源世界的源码控制默认工具,在4月7号12岁了。但是使用Git中更另人沮丧的是,你需要了...

Mr_zebra
2018/08/03
6
0
你可能不知道的关于 git-stash 的有用小技巧

如果你已经使用 Git 一段时间了,你可能已经用过 Git stash 。这是 Git 中非常棒的一个特性。 以下是我上周学到的关于 Git stash 的一些有用的技巧。 Git stash save Git stash list Git st...

oschina
2018/01/29
4K
1
Git 使用日常

.gitignore 文件忽略技巧: /* !/dira /dira/* !/dira/sub /dira/sub/* 这里 /* 是忽略所有目录中文件, !/ 是要保留的目录和目录中的文件。 日常使用 安装git-extras git add . ; git cz -...

jackblues
2016/11/19
10
0
13 个 Git 技巧献给 Git 13 岁生日

这 13 个 Git 技巧将使你的版本控制技能 +1、+1、+1…… Git 是一个分布式版本控制系统,它已经成为开源世界中源代码控制的默认工具,在 4 月 7 日这天,它 13 岁了。使用 Git 令人沮丧的事情...

作者: John Sj Anderson
2018/04/20
0
0
Github使用过程

Github使用过程 陈沙克日志2017-12-132 阅读 github 学习了一下git的使用过程。 假设我已经有一个仓库在我自己账号下,我下载回来,修改一下,push上去我修改的内容。 配置git 我修改下载的文...

陈沙克日志
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
4
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
9
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
7
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
8
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部