Skip to content

常见git操作

常见git应用场景下的操作

  1. 本地初始化

    git init

  2. 从远端拷贝新工程

    git clone <url>

  3. 从远端拉取最新的代码

    git pullgit fetch; git merge origin/<branch_name> 将本地节点和远端节点合并

    git pull —rebase本地节点对远端节点rebase

  4. 暂存

    git add <file_name>

  5. 储藏

    git stash

  6. 提交改动

    git commit -m <comment>

  7. 推送至远端

    git push

  8. 改变远端地址

    git remote set-url origin <new_url>

  9. 创建新的分支

    git checkout -b <new_branch>

  10. 切换分支

    git checkout <branch_name>(注意:如果远端有同名分支,git会自动做一个关联)

  11. 删除分支

    git branch -d <branch_name> 删除本地分支

    git branch -D <branch_name> 强制删除本地分支,即使有还未提交到远端的修改

    git push origin --delete <remote_branch>删除远端分支

  12. 合并分支

    git merge <another_branch>

  13. 变基

    git rebase <another_branch>

  14. 回滚节点

    git revert <commit_hash>

  15. 改变当前指针

    git reset <commit_hash> 重置指针,不丢弃修改

    git reset —hard <commit_hash> 重置指针,丢弃修改

    git reset —soft <commit_hash>

  16. 开发一个新的需求

    ​ 在master分支上git checkout -b <dev_branch>

    ​ 提交改动

    ​ 合并主分支的改动

    ​ 开发分支不建议进行rebase操作,因为如果有其他同学也在上面开发会很麻烦

  17. 修改线上bug的推荐姿势

    ​ 在master分支上git checkout -b <fix_branch>

    ​ 提交改动git commit -m <comment>

    git rebase origin/master; git push

    ​ 提MR

    ​ 删除fix分支

  18. 提交日志可以这么写

    ​ comment可以有标题和正文,标题和正文之间空一行

    ​ 这个在某些重大改动的提交上有用,标题可以简单描述一下,正文中详细写清楚改了什么

    ​ 在git log里面只会看到标题,点进去详情才会看到正文

  19. 分支命名建议

    ​ 线上修复的分支以hotfix_开头或者简单的就叫hotfix

    ​ 开发分支以dev_开头

    ​ 灰度分支以release_开头

  20. 在多个分支间切换

    git status查看当前分支的状态

    git stash如果有未提交的改动,用stash存起来

    ​ 切换分支

  21. 多次stash后的处理

    git stash list可以用这个命令看到多次stash的结果

    ​ 挑选你需要的储藏git stash apply <stash_index>(注意,apply不会删除stash本事,只会应用)

    ​ 确定不需要stash了,可以用git stash drop <stash_index>丢弃

    ​ 如果你很确定不会有问题,直接用git stash pop <stash_index>来直接应用并马上丢弃

    ​ 如果你看了list之后还是不记得是哪个stash,可以在stash中创建一个新的分支:

    git stash branch <new_branch>

    ​ 然后你可以方便的操作这个分支

  22. 在错误的分支上提交了节点,并且在错误的节点后又提交了正确的节点

    ​ 利用git rebase -i可以随意调换节点的位置

    ​ 把错误的节点pick到正确的后面,切换到正确的分支上,这中间有可能需要处理冲突,但一般不至于,如果需要处理冲突需要确定一下后面的节点是不是对的

    ​ 错误的节点用git cherry-pick <commit_hash>提交到正确的分支上

  23. 不小心reset —hard而且还没有推送到远端

    ​ 假如你提交过节点,那么git会帮你记录

    ​ 通过git reflog可以看到曾经出现在你电脑上的所有git节点,你可以reset到任何一个节点上去

  24. 将开发分支的改动提交灰度分支

    ​ 首先应该保证合了master的代码变动git merge origin/master,中间可能需要处理冲突

    ​ 然后git checkout master切换到master分支

    git merge —squash <dev_branch>把开发分支的代码变动移到master分支

    git checkout -b <release_branch>切换到新的发布分支

    git commit -m <comment>提交发布节点,此时,开发分支的代码变动已经完全包含在这个节点中

    ​ 灰度

  25. 解决stash冲突

    ​ stash的冲突解决和merge及rebase相似,

    ​ 如果想放弃解决,使用git reset --hard

  26. 在错误的分支上stash pop,还解决了stash冲突

    ​ git在stash发生冲突的时候,不会因为用了pop把stash删掉,所以这里很简单的处理就是

    git reset --hard,然后到正确的分支上去做正确的事

  27. 正在开发的分支被协作者rebase

    ​ 在开发分支当前节点创建一个新的分支

    ​ 把当前分支自己的待提交修改都放到这个分支上

    git rebase --onto origin/<dev_branch> dev_branch这样你的改动就已经和远端的开发分支在一起了

  28. .gitignore

    模版

  29. .gitkeep

    ​ 可以用来保留空文件夹

  30. 可以减少犯错概率的工具

    ​ Sourcetree

    ​ Tig

    ​ Oh My Zsh