• Git命令


    1. .git文件记载Git的版本库信息,放在项目的根目录下。执行Git命令时会从当前路径往上递归,直到找到项目根目录下的文件
    2. git init 初始化git仓库
    3. git add file1 将文件由工作区添加到暂存区
    4. git add . 将所有文件由工作区添加到暂存区
    5. git add -u 更新暂存区的文件
    6. git add -I 新增暂存区的文件
    7. git commit -m ‘message’ 提交暂存区的改动到本地仓库
    8. git rev-parse --git-dir
    9. git rev-parse --show-toplevel
    10. git rev-parse --show-orefix
    11. git log 查看提交日志
    12. git status 查看当前工作区文件状态,是否添加到缓存区
    13. git diff 暂存区和工作区的区别
    14. git diff --cached 暂存区和版本库HEAD的区别
    15. git diff --HEAD 工作区和版本库HEAD的区别
    16. git reset HEAD 暂存区的目录树被版本库重写/暂存区内容被版本库覆盖
    17. git rm --cached 删除暂存区文件,工作区不受影响
    18. git checkout – 用暂存区的(指定)文件替换工作区的文件,工作区文件会被覆盖(DANGER)
    19. git checkout HEAD . 或 git checkout HEAD 用版本库的文件覆盖暂存区以及工作区,暂存区和工作区未提交更改会被丢弃(DANGER)
    20. HEAD相当于/refs/heads/master,位于.git/HEAD,内容为ref:/refs/heads/master,该文件内容为当前分支下(master)最新的一次commit id
    21. git ls-tree -l HEAD 显示HEAD指向的目录树
    22. git ls-files -s 显示暂存区的目录树
    23. git stash 相当于git stash save ,暂时搁置,隐藏暂存区(只会操作git追踪的文件,指暂存区)未提交的文件。stash:藏匿
    24. git stash list 查看保存的列表
    25. git stash pop 弹出保存的stash,stash记录会消失
    26. git stash apply 或者 git stash apply stash@{1} 应用保存的stash,但不弹出,stash不会消失
    27. git log -1 --pretty=raw 显示最新commit 的id,parent id(父提交),tree,author以及committer
    28. git log --graph --pretty=oneline
    29. git cat-file -p commitId前七位 显示对应id的相关信息
    30. commit信息中的tree对应的是此次更改的文件树(tree id),树下文件(也有文件id)对应文件内容(blob格式保存)
    31. git对象:commit对象(包括parent对象),tree对象(包含变更文件id的树对象),file对象(实际被更改文件对象)。每个对象都有id,master指向最新的commit对象,到parent为空时结束
    32. git中的id值有SHA1生成
    33. git重置
    34. HEAD指向当前所在分支的最新提交。被称为游标,使用git reset命令可以移动游标。
    35. .git/refs/heads/master中存储该分支下的commit或者reset记录以及id,可以使当前分支回退或前进到指定commit
    36. git reset 相当于git reset --mixed相当于git reset HEAD相当于git reset refs/heads/master,回退暂存区,相当于撤回之前的git add 命令,但修改的文件还在工作区,相当于用当前版本库覆盖暂存区文件,该命令也可用于回退指定的文件。工作区不受影响,commit之后的提交会放到暂存区(红色状态)。
    37. git reset --soft 仅改变当前分支指向的commit,常用于重新更改上次提交message,暂存区和工作区文件内容不受影响,该次commit之后的提交会放到暂存区(绿色状态)。
    38. git reset --hard 使用版本库重置(danger)暂存区以及工作区,且后续提交不再显示已覆盖内容,除非使用相同的命令以及commit id前进到前面的id,id可以在log文件找。
    39. git checkout 之前的commitId ,指针HEAD会指向该次提交,(HEAD直接指向该次commitID,而不是当前分支)处于‘头分离指针’状态,在该状态提交修改不会影响其他分支,可以通过checkout -b new_branch 创建分支保存当前状态。
    40. 头分离指针状态下,指向823d提交id,切换到别的分支之后,可以通过merge 823d合并’头分离指针‘到当前分支
    41. Git checkout branch 切换到其他分支,暂存区和工作区不会变
    42. Git checkout 显示工作区、暂存区和HEAD的区别
    43. Git checkout – filename 使用暂存区的file覆盖工作区,工作区file会丢失
    44. Git checkout branche --filename 使用指定分支的file覆盖工作区,工作区file会丢失
    45. Git checkout . 使用暂存区直接覆盖工作区所有文件
    46. git rm 移除工作区以及暂存区文件
    47. git mv file1 file2 重命名工作区以及暂存区文件。
    48. mv file1 file2 不会同步到暂存区,需要 git add -u才能达到和git mv file1 file2的效果
    49. git tag -m ‘message’ tag_name 创建里程碑
    50. git tag -d tag_name
    51. git tag -l 显示tag的列表
    52. git commit -amend -m ‘message’ amend:修正
    53. git rebase --onto 例:git rebase --onto D B^ A 跳过C,把B、A加到D上,相当于删除了D,参数可以是HEAD、branch、commitId
    54. git rev-parse newbase 查看head、branch、tag的commitId
    55. git rebase -i D^ 修改提交信息
    56. git show commitId/HEAD 显示本次提交的详细信息
    57. git revert commitId 撤回本次提交,直接生效到版本库
    58. git merge 当前提交作为最新的父提交,commitId作为该提交的父提交,合并后会自动提交到版本库,使用 --no-commit 会将合并后结果放入暂存区
    59. git describe 显示某次提交的tag
    60. git branch 显示所有分支,*标识当前分支
    61. git branch 创建新的分支
    62. git branch 从start-point创建新分支
    63. git branch -d/-D branch 删除或强制删除分支
    64. git branch -m/-M branch 重命名或强制重命名分支
    65. 分支合并时,祖先提交不一致,会提示Merge made by the ‘recursive’ strategy.
    66. mirror和bear区别
  • 相关阅读:
    RocketMQ源码解析-topic创建机制
    酷开科技丨酷开系统重塑家庭娱乐生态,开启家庭生活新体验
    SSRF 服务端请求伪造, 简介,SSRF实验, 漏洞探测, 绕过技巧, SSRF防御
    证书格式说明
    Docker实践笔记7:构建MySQL 8镜像
    面试题 01.01. 判定字符是否唯一
    【无标题】
    视频点播系统,视频播放器,在线视频点播学习系统毕业设计
    能够解决传统FTP传输弊端的替代工具是什么样的?
    经验分享,两个在线图片处理网站在线抠图和删除不需要的元素
  • 原文地址:https://blog.csdn.net/weixin_42424720/article/details/127901738