git常用语法

创建分支
  • git branch new-branch
创建分支的同时切换到新建的分支
  • git checkout -b new-branch
在其他分支的基础上新建分支,且不带之前分支的commit信息
  • git checkout --orphan new-branch
第一次将本地分支(dev)推送到远程分支(dev)
  • git push origin dev:dev
提交本地分支(dev)到远程分支(origin/dev)
  • git push origin dev
将本地分支( dev )合并到远程分支(origin/master)
  • git checkout master;

  • git merge dev

  • git push origin master

    Tip: git merge --squash dev --squash这个参数的作用是,可以将dev之前commit的记录整合到一个,这样合并的log就会只有最后一个commit的信息

将本地某次提交合并到远程分支(origin/master)
  • git log 查看某次提交的commit-id

  • git checkout master

  • git cherry-pick commit-id

  • git commit -m "add msg"

  • git push origin master

  • git pull (相当于git fetch+git merge)

git fetch 将远程分支最新修改拉取下来
删除本地分支
  • git branch -d branch-name
  • git branch -D branch-name (强行删除本地分支)
删除远程分支
  • git push origin --delete branch-name
合并多个commit

举例:合并最后2次提交的commit:

  1. 先回退到最后2次提交的前一次提交

    git rebase -i HEAD~3
    或 git rebase -i commit-id (commit-id:倒数第3次commit的commit-id)
    
  2. 选择第3个commit-id中的一个作为最终需要保留的commit-id
    并将剩下两个提交的pick---更改为squash(简写s)也可以,保存退出(:wq)

    如果需要删除某次提交,直接将pick--更改为 drop即可
    需要提交到远程代码的话,还需要执行:git push origin master -f

  3. 进入到提交msg界面,看是否需要更改提交的msg,如果没有直接保存退出
    如果有,按i进入编辑模式,修改相应的msg,按esc退出编辑模式,再保存退出。

注意:如果整个操作有出现错误,可以使用: git rebase --abort(放弃本次rebase操作)
同理cherry-pick出错,可使用:git cherry-pick --abort

当前所在分支有更改,未提交到缓存区,但是需要切换到其它分支:
  • git stash [save message] 备份当前的工作区的内容 [当前内容的备注信息]
切换在缓存区中最新的一次记录
  • git stash pop 弹出最后一次stash的提交,代码恢复到该次提交的状态

  • git reset --soft commit-id (软重置,新提交的文件会被保存)

  • git reset --hard commint-id (硬重置,新修改的数据都会被清掉,包括stash暂存区的)

原文地址:https://www.cnblogs.com/xinxinmifan/p/git-learning-note.html