git常用操作

Basic Operation

  • 分支管理

    1. 切换分支
      git checkout
      git checkout -b #branch name 当前不存在
    2. 查询当前所有分支
      git branch
    3. 新建分支
      git branch
    4. 分支重命名
      git branch -m
    5. 删除分支
      git branch -d #本地分支
      git push origin --delete #远程分支
      git push origin : #远程分支
  • 检查当前git工作区状态
    git status

  • 将修改添加到暂存区(文件的信息添加到索引库)
    git add [file]

  • 提交本次更改记录
    git commit
    我们这里用的是git cz

  • 查看commit log
    git log

  • git隐藏操作(stash)
    对当前工作区已修改文件进行临时存储,适合于代码未提交但是其他git操作需要当前工作区提交的场景
    git status
    恢复工作区
    git status pop

  • git提交
    git push origin master #提交本地master到远程的master分支
    git push origin test:test #提交本地test分支作为远程的test分支

  • 远程仓库相关

    1. 添加远程仓库
      git remote add
      例如: git remote add upstream https://github.com/xxxx/yyyy.git
    2. 查看远程库详情
      git remote -v
    3. 同步远程库
      git fetch
      git fetch upstream
  • 与远程库upstream同步
    git fetch upstream
    git checkout master #master与远程库upstream同步
    git rebase upstream/master

  • git比较两个分支的文件的差异
    git diff branch1 branch2 --stat //显示出所有有差异的文件列表
    git diff branch1 branch2 文件名(带路径) //显示指定文件的详细差异
    git diff branch1 branch2 //显示出所有有差异的文件的详细差异

  • 两个分支cherry-pick
    git log 获取某一分支需要cherry-pick到其他分支的commit id
    git checkout xxx 切换到需要合入commit的分支
    git cherry_pick # start-commit-id 到 end-commit-id 之间所有的 commit,不包含start-commit-id
    git cherry_pick ^… # start-commit-id 到 end-commit-id 之间所有的 commit,包含start-commit-id

    git cherry_pick commit_id1 commit_id2 与git cherry_pick commit_id2 commit_id1执行效果不同

Trouble Shooting

  • rebase常见问题
    rebase过程中如果出现冲突,解决冲突后,执行git add后继续执行git rebase --continue
    取消已在进行中的rebase操作,执行git rebase --abort,版本回退到执行rebase操作前的状态

  • push无法成功
    一般是由于本地代码与远程仓库代码不一致导致,有两种解决办法

    1. pull远程仓库,修改冲突后再提交
      git pull
      查看编辑冲突后再 git pull一下,就合并了。
      git status
      把本地分支test push到远端分支
      git push

    2. 本地代码覆盖远端代码
      git push --force
      远端分支多人使用情况下执行,有可能将他人的commit覆盖删除

你可能感兴趣的:(git常用操作)