git常用操作

Basic Operation

  • 分支管理

    1. 切换分支
      git checkout <branch name>
      git checkout -b <branch name> #branch name 当前不存在
    2. 查询当前所有分支
      git branch
    3. 新建分支
      git branch <branch name>
    4. 分支重命名
      git branch -m <old_branch> <new_branch>
    5. 删除分支
      git branch -d <BranchName> #本地分支
      git push origin --delete <BranchName> #远程分支
      git push origin :<BranchName> #远程分支
  • 检查当前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 <name> <url>
      例如: git remote add upstream https://github.com/xxxx/yyyy.git
    2. 查看远程库详情
      git remote -v
    3. 同步远程库
      git fetch <name>
      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> # start-commit-id 到 end-commit-id 之间所有的 commit,不包含start-commit-id
    git cherry_pick <start-commit-id>^…<end-commit-id> # 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覆盖删除

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本篇的基础知识: git常用操作命令 cocoapods基本使用 cocoapods本地私有库的使用 cocoap...
    Lovell_阅读 3,728评论 1 0
  • https://backlog.com/git-tutorial/cn/intro/intro1_1.htmlht...
    zZ小菜鸟阅读 4,136评论 0 0
  • git 帮助 git的三种状态 已提交(committed),已修改(modified)和已暂存(staged) ...
    RevinDuan阅读 4,905评论 0 0
  • 查看当前项目ip等信息:cat .git/config 编辑外网ip:vim .git/config 修改外网ip...
    华华00526阅读 3,655评论 0 0
  • 你“不学中医,你来中医学院干嘛? 只要你有足够的想学,你一定能学好中医!” 今天凌晨两点过下的火车,滴滴打车去学姐...
    唐萍TANGPING阅读 1,265评论 0 0

友情链接更多精彩内容