zoukankan      html  css  js  c++  java
  • git解惑-----git使用场景

    答疑:
    1.如何查看当前本地分支对应的远程分支?
    2.如何建立与远程某一个分支的映射关系?   --set-upstream 

    查看当前详细分支信息(可看到当前分支与对应的远程追踪分支): git branch -vv

    查看当前远程仓库信息 git remote -vv

    一:回退

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作

    场景3:已经提交了不合适的修改到本地版本库时,想要撤销本次提交,参考版本回退一节  git  hard  reset commitID

    场景: 本地新建一个仓库关联到远程仓库:  

       git remote add origin git@github.com:用户名/仓库名.git  本地仓库与远程关联 

             git push -u origin master  本地库的所有内容推送到远程库  (远程库的名字就是origin,这是Git默认的叫法)

             git push origin(远程仓库) master(主分支) 以后再提交  

    场景:在当前分支A上开发,然后add,comit;  别人的分支也开发并add,然后comit了与你有重复的文件,这个时候进行分支合并就会失败,必须人肉合并了!     然后add再commit


    场景一:新建了一个项目,然后想推送到git仓库
    1.git init --> git add . ----> git commit -m '' (推送到本地仓库)
    2.git remote add origin https://github.com/MeFirebird/gitTest.git (创建本地仓库与远程关联:前提是当前仓库未与其他仓库关联)
    3.git push -u origin master
    注意事项:git branch不会输出东东,因为分支只有在git commit之后才会被创建


    场景二:通过命令行创建一个新仓库(远程仓库)
    1.先在github上新建一个仓库
    2.本地创建文件夹 git init
    3.git add . ---> git commit -m "zhushi"
    4.git remote add origin https://github.com/MeFirebird/Git.git
    5.git push -u origin master
    注意事项:
    1.git commit的时候 写注释要双引号 不然可能会报错

    场景三:创建自己的额分支进行开发,开发完毕合到dev分支
    1.git checkout -b sandy (创建并切换到sandy分支)
    2.git add . ---> git commit -m 'comment'
    3.git checkout dev(回到dev分支) git merge sandy(将sandy分支合到dev分支)
    4.删除分支 git branch -d sandy

    场景四:创建自己的分支进行开发,开发完毕合到dev分支,但是遇到冲突
    1.步骤同上123 然后报冲突错误
    2.人肉解决冲突 然后add commit
    3.删除分支 git branch -d sandy


    场景五:当前分支上工作了一半,代码提交上去会影响你本地系统的运行,所以不能提交(commit),但现在dev分支上出现一个紧急bug,需要你快速搞定,
    然后好合版本到master分支,进行发布。
    答:
    1.如果是文件可以做到按需提交 但如果改bug和当前做的一半工作有文件冲突就不好了。
    2.将自己当前工作代码clone一份,然后revert,然后改bug,改完bug再参照clone的工作代码恢复自己的进度
    3.换一个账号,拉一条分支进行改bug
    4.git stash 保存当前工作进度 ----》git checkout master(切换到master分支) ---》git checkout -b sandy(创建分支并切换到sandy)
    如果不进行stash的话,无法进行分支切换
    5.在创建的临时分支sandy上工作,然后commit,bug改好后,合并到master分支,至此,bug就Over了
    6.回到自己之前的工作分支,然后git stash apply


    场景六:多人协作
    1.git push origin master 推送不成功,git pull先拉取远程,然后合并(本地版本库与远程版本库合并),有冲突(本地与远程)无法合并,SO解决冲突,然后本地commit
    到版本库。 解决掉冲突后再推送到远程
    如果git pull提示no tracking information 说明本地分支与远程分支没有映射关系,用命令建立:git branch --set-upstream-to <branch-name> origin/<branch-name>



    场景七:Rebase 变基
    1.git rebase 本地未push的分叉提交历史整理成直线 让git的提交历史更为清晰

    场景八: 独立分支开发

    1.在远程开好自己的分支,本地直接拉下来;

      git checkout -b feature-branch origin/feature-branch //检出远程的feature-branch分支到本地

    2.本地开好分支,推送到远程

      git checkout -b feature-branch   //创建并切换到分支feature-branch

      git push origin feature-branch:feature-branch   //推送本地的feature-branch(冒号前面的)分支到远程的origin的feature-branch(冒号后面的)分支(没有会自动创建)

    概念:

     git rm --cache <file> to unstage      从暂存区返回到工作区   

    commit就是提交到仓库了,然后就剩下同步到远程仓库了!

    哦,大写有强制的意思啊:git   -D

    origin是远程仓库        master是主分支

    查看远程库信息,   使用git remote -v;

    本地新建的分支如果不推送到远程,对其他人就是不可见的;

    从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

    在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

    建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

    从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。


    先拉取,再提交

    模式合并方式: --no-ff方式 fast forward方式

    本地仓库的变更仅再当前分支可见,平行空间啊! 每个分支都在某一个基础版本上开始往下延伸,分支间互不干扰。

    工作区的修改在任意分支下都是可见的

    暂存区的修改在任意分支下都是可见的

    切换分支前,要将当前分支的内容commit到本地仓库哦,不然会被覆盖的!

    加上刚才合并的提交,现在我们本地分支比远程分支超前3个提交。

    在github上,fork后的仓库才拥有读写权限,然后可以发起一个PR给源仓库

    补充:

    1.git图标意义


  • 相关阅读:
    设计模式之观察者模式
    设计模式之建造者模式
    设计模式之外观模式
    设计模式之模板方法模式
    设计模式之原型模式
    自己动手写计算器v1.1
    自己动手写计算器v1.0
    Guid的使用
    设计模式学习---代理类
    StringBuilder的使用
  • 原文地址:https://www.cnblogs.com/njqa/p/9110551.html
Copyright © 2011-2022 走看看