使用git的常用场景
2018-12-29 本文已影响0人
守住这块热土
14|怎么删除不需要的分支?
git branch -d/-D 分支名
-d 用-d 报“error:The branch is not fully merged”,是指这个分支不曾合入到其他任何分支。在日常开发中,我们通常赋予有意义的分支名,Git判断本分支没和任何别的分支合并,意味这删除存在风险。
-D 如果确定无风险就用-D 。
15 | 怎么修改最新commit的message?
git commit --amend 【修改最新的commit信息】
16 | 怎么修改老旧commit的message?
- git rebase -i *** 需要修改的commit的父节点;
其实git rebase -i 是分离HEAD指针的应用,使用了git rebase -i,会产生分离头指针,在变基后,默认使用了abort结束变址。
在工作中,慎用该功能。 因为git rebase -i 后,会导致新的commit hash值替换之前的commit hash值。
17 | 怎样把连续的多个commit整理成1个?
image.png18 | 怎样把间隔的几个commit整理成1个?
将第一个commit和需要合并的commit放在第一个commit的下面,并将pick 修改为s。
image.png
- git rebase --abort
- git rebase --continue
19 | 怎么比较暂存区和HEAD所含文件的差异?
image.png- git diff --cached ** 比较HEAD和暂存区的差异**
或者使用 git diff —staged
20 | 怎么比较工作区和暂存区所含文件的差异?
- 工作区:
表示的是,本地的修改。 - 暂存区:
表示的是,add后 - git diff 比较所有的区别(工作区与暂存区的区别)
- git diff 文件名 比较文件名的差异
21 | 如何让暂存区恢复成和HEAD的一样?
暂存区与工作区恢复,两种恢复方式。
git reset HEAD ,是让暂存区恢复为HEAD所指向的节点,使用了该命令后,工作区修改的内容会被保留(保险),如果本地的修改需要丢弃掉,那么可使用--hard
- git reset HEAD
- git reset HEAD 文件名
git reset 有三个参数
--soft 这个只是把 HEAD 指向的 commit 恢复到你指定的 commit,暂存区 工作区不变
--hard 这个是 把 HEAD, 暂存区, 工作区 都修改为 你指定的 commit 的时候的文件状态
--mixed 这个是不加时候的默认参数,把 HEAD,暂存区 修改为 你指定的 commit 的时候的文件状态,工作区保持不变。
22 | 如何让工作区的文件恢复为和暂存区一样?
- git checkout ***
23 | 怎样取消暂存区部分文件的更改?
- git reset HEAD 文件名
24 | 消除最近的几次commit
git reset--hard commit_id
25 | 看看不同commit的指定文件的差异
- git diff master temp -- a.txt
- git diff commit_id commit_id
26 | 正确删除文件的方法
- git rm *
git rm *,相当于在工作区rm,git add
27 | 开发中临时加塞了紧急任务怎么处理?
- git stash
- git stash apply
把之前的stash中的内存恢复到工作区中;
之前stash的commit_id依旧存在,没有消失。 - git stash list
- git stash pop
把之前的stash中的内存恢复到工作区中;
之前stash的commit_id被丢掉。
28 | 如何指定不需要Git管理的文件?
新增加.gitignore文件
doc 不管文件夹和文件
doc/ 不管文件夹,管文件
29 | 如何将Git仓库备份到本地?
常用的传输协议image.png
image.png
智能协议,相比哑协议,会打包文件,使得传输速度智能协议更快。