git常用命令

365 阅读3分钟

常用命令

  • git branch -a
    • 查看所有分支
  • git push origin --delete dev
    • git删除远程分支
  • git branch -d dev 删除本地分支
  • git checkout -b xxx origin/xxx
    • 从远程分支上创建一个新分支到本地,并自动追踪该分支
    • 例:git checkout -b duweiwu/spots origin/release_5.32.0
  • git push origin your_branch_name
    • 把本地分支推送到远程仓库
  • git branch -m feature/rescue_order
    • 修改本地分支的名字
  • git branch --set-upstream-to=origin/master
    • 将当前分支追踪远程分支origin/master
  • git branch --unset-upstream
    • 取消本地分支追踪远程分支
  • git branch -vv
    • 查看本地分支和远程分支的跟踪关系
  • git pull --rebase origin feature/insurance
    • rebase方式更新远程分支内容
    • 遇到冲突,打开文件解决冲突后,git add. git commit
    • git rebase –continue
  • (master)$ git merge –no-ff develop
    • 将develop分支合并到master, 不采用快速合并,将会产生一个commitid
  • git push -f
    • 强制推送当前分支到远程仓库
  • git switch -c dev 创建并切换到dev分支
  • git branch -d 删除分支
  • git stash pop/apply
  • 设置全局的git用户名和邮箱
git config --global user.name "xxx" // 配置全局用户名,如Github上注册的用户名
git config --global user.email "yyy@mail.com" // 配置全局邮箱,如Github上配置的邮箱
  • 清除全局的git用户名和邮箱
git config --global --unset user.name
git config --global --unset user.email
  • 设置当前仓库的用户名和邮箱
git config user.name "liugui"
git config user.email "liugui@hust.edu.cn"
  • 查看
git config --global user.name
git config --global user.email

所谓rebase

  1. rebase的目的让 master能够用fast forward的方式合并feature分支。
  2. 这里的base实际上指的是,当前分支是基于远程(源)分支的哪次commitId的作出的修改(或者说是当前分支的后续commit是基于源分支的哪次commit),或者说是基于远程分支的哪次commId开始分叉(所谓分支就是分叉并行开发)。
  3. 而我们最终开发完成都是要把代码合并到源/远程分支上的,如果当前分支后续的修改(一次一次的commit)是基于点仍然是源分支的最后一次commit点,那么源分支进行 git merge xxx 的时候可以采用fast forward模式,即将head指针,直接指向这次commit。
  4. 而rebase是指的是,将本地分支基于远程分支
  5. 如果本地分支基于源分支的最后一次作出的修改,那么git在merge的时候,

Fast forward选项是直接将master的指针指向要合并的分支的位置,合并之后,原始的分支中的所有信息都会被删除。

merge 不会产生记录 线并不区分是谁的分支,谁的线 提交也不分谁谁的分分支,只是一条提交记录 当本地分支落后源分支提交时,进行pull会自动生成一个commit记录,本分支的commit 会把远程分支的

rebase就是把你本地分支 整合成和源分支 一毛一样的,然后再将战存区文件恢复。 只有 以便能让 源分支 能够以fast forward 方式merge 本地分支,然后本地分支的记录将会被删掉。

而不rebase的话,将会生成一个新的本地分支合并源分支的commit记录,然后源分支和本地分支的head都指向它,以便能够再合并,但是此时会保留分支记录。