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 <new_branch_name> 创建新的分支
  62. git branch <new_branch_name> 从start-point创建新分支
  63. git branch -d/-D branch 删除或强制删除分支
  64. git branch -m/-M branch 重命名或强制重命名分支
  65. 分支合并时,祖先提交不一致,会提示Merge made by the ‘recursive’ strategy.
  66. mirror和bear区别
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值