工作区(workspace)=> 暂存区(index)=> 本地场库(local repository)=> 远程场库(remote repository)
    image.png
    git有好几个区,工作区(workspace)、暂存区(index)、本地仓库(local repository)、还有远程仓库(remote repository)。远程仓库为我们保存一份代码,如github,而工作区、暂存区和本地仓库都在本地,这也就是为什么我们在没有网络的环境下也能使用git提交(commit)代码,因为提交仅仅是提交到本地仓库中,待有网络之后在推送(push)到远程仓库。

    1. 1、初始化场库
    2. git init
    3. 2、提交代码到暂存区
    4. git add . // 提交所有修改的文件到暂存区
    5. git add [filename] // 提交特定的文件到暂存区
    6. 3、撤销提交到暂存区的文件
    7. git reset HEAD . // 撤销所有暂存区的文件
    8. git reset HEAD -filename // 撤销某个暂存区的文件
    9. 4、提交commit
    10. git commit -m "初始化" // 提交暂存区代码到本地场库
    11. git commit -a -m "初始化" // 可以将没有在暂存区的文件提交到本地场库(这一个直接省略了add)
    12. git commit -am "初始化" // 同上
    13. 5、撤销commit之后的(撤销本地代码到)
    14. git reset --soft HEAD^ // 撤销commit之后的代码=》撤销到暂存区
    15. git reset --hard HEAD^ // 直接撤销到本地时候
    16. git reset --hard 59cf878 // 撤销到某一个commit
    17. 6、修改commit信息
    18. git commit --amend
    19. 7、用暂存区指定的文件替换到工作区
    20. git checkout -- <file>
    21. 8、提交到远程
    22. git push
    23. 9、临时保存文件
    24. git stash // 保存临时修改的文件(保存至堆栈中,用于后续恢复当前工作目录)
    25. git stash pop // 将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。堆栈中的内容会删除。
    26. 10、新建分支
    27. git branch [branch-name] // 新建一个分支,但依然停留在当前分支(远程没有也没有关系)
    28. git checkout -b [branch] // 新建一个分支,并切换到该分支
    29. 11、切换分支
    30. git checkout [branch-name] // 切换分支(该分支在本地已有)
    31. 11.1、新建并切换到新建的分支
    32. git checkout -b [branch-name] // 新建并切换分支
    33. 12、合并分支
    34. git merge [branch] // 合并指定分支到当前分支
    35. git merge --abort // 取消合并
    36. 13、拉取
    37. git fetch origin develop:develop // 拉取远程已有的分支,并在本地新建一个这样的分支
    38. git pull origin develop // 拉取远程分支的代码
    39. 14、提交远程
    40. git push origin develop
    41. git pullgit fetch的区别
    42. git fetch:相当于从远程获取最新版本到本地,不会自动merge
    43. git pull:相当于从远程获取最新版本并merge到本地
    44. git pull origin master
    45. ==》
    46. git fetch git merge
    47. 在实际使用中,git fetch更安全一些
    48. 因为在merge前,我们可以查看更新情况,然后再决定是否合并。
    49. 15、远程打tag
    50. git tag -a v1.4 // 打一个tag
    51. git tag -a v1.4 -m "my version 1.4" // 打一个tag并添加说明
    52. git push origin v1.4 // 将这个tag提交到远程
    53. 16、查看日志
    54. git reflog git log的区别
    55. git log 命令可以显示所有提交过的版本信息
    56. git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
    57. 17git diff
    58. 比较两个文件的不同
    59. 18git cherry-pick
    1. 代码回滚
    2. git reset --soft
    3. 只是改变了HEAD的指向,本地代码不会变化,我们使用git status依然可以看到,同时也可以git commit提交
    4. git reset --hard
    5. 直接回改变本地源码,不仅仅指向变化了,代码也回到了那个版本时的代码,所以使用是一定要小心
    6. git reset --hard HEAD^
    1. git commit -m "iii" --no-verify // 跳过校验
    1. 代码回滚(Revert之后)重新修改之后,再rebase master 会覆盖原来的