Git 常用命令

103 阅读2分钟

Git

  • Remote repository
  • local repository
  • workspace

GitFlow

  • branch: master & develop
    • 主分支 master: 只跟踪已发布的代码
    • 开发分支 develop: 包含 feature 功能分支和 release 预发分支
    • 补丁分支 hotfix: 紧急修复

merge vs rebase

  • merge: 自动创建一个新的 commit, 记录了真实的 commit 记录
  • rebase: 会合并之前的 commit 历史, 得到更简洁的项目历史 merging vs rebasing

git reset , git revert , git checkout 有什么区别

git 仓库的三个组成部分:

  • working directory, 工作区
    • 在 git 管理下的正常目录都算是工作区,我们平时的编辑工作都是在工作区完成
  • index/stage, 暂存区
    • 临时区域。里面存放将要提交文件的快照
  • history, 历史记录区
    • git commit 后的记录区
working directory 
-> [git add] -> stage 
-> [commit] -> history

history 
-> [git reset -- files] -> stage 
-> [git checkout -- files] -> working directory 

git reset 的三种模式

history 恢复历史版本代码到当前stage时, 需先对当前工作区和暂存区的文件改动进行处理, 这些改动是需要保留还是清空.
git reset --hard, 重置工作区和暂存区

git reset --soft, 保留工作区和暂存区的改动, 并把重置带来的新差异放入暂存区

git reset --mixed, 保留工作目录,并且清空暂存区. 工作目录的修改、暂存区的内容以及由 reset 所导致的新的文件差异,都会被放进工作目录。简而言之,就是「把所有差异都混合(mixed)放在工作目录中」

git cherry-pick [commitID] 将某个 commit 合并到HEAD

git stash

git stash save "save msg" //存储 , msg 方便查找
git stash list	//列举出所有的存储

git stash show stash@{1} (默认是 show stash@{0}) //显示指定存储作了哪些修改
git stash show [stash@{1}] -p //默认是显示第一个存储即 stash@{0} , 相比于上面,提供更详细的修改

git stash apply [stash@{1}] //默认应用第一个存储

git stash pop [stash@{1}] //应用并将缓存堆栈中的对应stash删除
git stash drop stash@{$num} //删除对应的stash@{$num}存储,从列表中删除这个存储
git stash clear //清空存储

//增save 删pop/drop/clear 改apply 查show/show -p/list