git commit -amend_熟练使用Git的一些实操命令

f302372e7c221369caa63d40c0411699.png

关于Git对码农来说是不可或缺的贴身工具。学厮,用厮,恨厮,被厮盘,直到熟练使用,用它提高效率,甚至用它构建DevOps栈。关于Git文档,有官方的文档(中文版)、其他一些文档,还有我总结的gitlabFAQ(github:/bollwarm/gitlabFAQ)提到一些信息,以及我发的很多相关文章都是很好的学习材料。但是有时候可能要的是不需要深思熟虑、不需要深究细节的信手粘来的"傻瓜"式实操文档。所以今天虫虫就给你总结了这样一份材料,供你跟着实际操作联系。

4a7a9d328075d90eab7dabb39edf1df3.png

1.交互式添加文件的选定部分

git add -p

add -p(或-patch)允许交互选择要提交的每个跟踪文件的各个变化内容。只提交选定的更改。

16e5ad02413ae69a9b5c6db20a0270e2.png

注意,该处可能的选项和操作:

y 来暂存该块

n 不暂存

d 不暂存该块,跳到下一块

e 手工编辑该块

2.交互式暂存文件的选定的变化

git stash -p

和第一个命令一样,stash命令也可以通过—patch选项以交互方式选择跟踪文件的特定变化暂存。

3.交互式撤销选定文件部分

git checkout -p

--patch还可用于选择性地丢弃以已经暂存文件的变化的。

4.修改最近的commit信息

git commit --amend

--amend允许将缓存区的变化添加到之前的commit。还可以和选项--no-edit一起使用,用户添加修改文件而不修改commit信息。而这个命令被大家广泛用途是用来修改最近的一次commit信息。注意该命令只使用还未提交push到远程库的变化。

5.缓存未跟踪的文件

git stash -u

默认情况下,add添加时候,不会缓存不会未跟踪的文件(.gitignore设置)。为了更改其默认行为临时又缓存一些文件,则可以使用-u参数。

6.切换到上一个分支

git checkout -

该命令用来快速切换到先前检出的分支。一般说来"-",是前一个分支的别名。在shell中也有该用法,比如,"cd -"就是跳到上一次所在的目录。

7.撤销所有本地更改

git checkout .

确定可以丢弃所有本地更改,则可以使用.撤销所有变化。但是一般情况下,建议用checkout --patch来具体交互式操作。

8.显示更改

git diff --staged

该命令用来显示所有已经暂存的更改(添加到索引)。默认的git diff只显示工作目录中的更改。

9.在本地重命名分支

git branch -m old-name new-name

如果要重命名当前所在的分支,可以简单用:

git branch -m new-name

10.重命名远程分支

为了远程重命名分支,先在本地重命名了分支,远程删除该分支,然后push推送重命名后的分支。

git push origin :old-name

git push origin new-name

11.一次打开所有带冲突的文件

rebase操作可能会导致冲突,为了显示所有冲突的文件,可使用下面的单行命令。

git diff --name-only --diff-filter=U | uniq | xargs $EDITOR

12. 删除上次提交的文件

如果你错误提交了一个文件,还未push到远程仓库。可以利用git rm和git commit --amend命令从上次提交中快速删除该文件,然后再提交。

git rm --cached 删除暂存区的变化

git commit --amend 改变commit提交信息

13.根据commit搜索分支

git branch --contains

该命令会列出所有包含特定commit的分支。

14.在本地优化存储库

git gc --prune=now --aggressive

如果你的仓库很大,变化很多,过一段时间可能你的仓库系能会很差了。这时候就可以使用git gic命令压缩历史信息来节约磁盘和内存空间。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值