• Git复习步骤


    1.首先肯定是安装与配置了

      首先要下载Git,然后设置用户名/邮箱

           https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137396287703354d8c6c01c904c7d9ff056ae23da865a000

      如果有远程仓库,则需要通过 ssh-keygen -t rsa 或者 ssh-keygen -t rsa -C "youremail@example.com"  在主目录生成.ssh文件夹。再将公钥放到远程仓库对应位置,如github

           https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374385852170d9c7adf13c30429b9660d0eb689dd43a000

       

    2. 添加.gitigonre  (touch .gitignore)

      http://www.softwhy.com/article-8539-1.html

    3. 关联远程仓库:

       https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000 

      

      例子:(eclipse项目如何放置在github上)

        首先打开eclipse建立的了一个java项目,然后在git bash中,用命令git init初始化,然后添加gitignore。(只需要忽略  /bin/)

        然后git add .         git commit -m '  '

        然后关联远程仓库。

        push: 如果github上初始化了readme,那么需要  git pull --rebase origin master 将其拉下来,然后再用 git push -u origin master

            https://jingyan.baidu.com/article/f3e34a12a25bc8f5ea65354a.html

                   回到eclipse,  参考https://blog.csdn.net/superxiaolong123/article/details/81189481  (有了上面的铺垫,可直接  从右键项目,team -> share project处开始看了)

    3.提交流程

      a.已经在本地提交

      merge,如果不是快速合并,会生成新的提交记录。遇到冲突时,需要解决冲突,然后add,commit.

      rebase,不会生成新的提交。遇到冲突,解决,add,不需要提交, 而是rebase --continue.就可以了

      aa)如果本地有只有一个分支,git pull --rebase.即可。遇到冲突,解决,add,然后rebase --continue就好了。

      ab)但是,如果本地有master ,dev两个分支,但只通过master提交的话:
      首先进入master,git pull,拉取远程仓库最新代码
      再进入dev分支,git rebase master.将dev分支处理好
      最后进入master分支,git merge dev 进行快速合并,再在master上push,这样就不会产生无意义的提交

      ac)其实最正常是这个:

      如果本地有master ,dev两个分支,通过dev提交的话:
      首先进入master,git pull,拉取远程仓库最新代码
      再进入dev分支,git rebase master.将dev分支处理好,在dev分支push自己的代码

      b. 本地未提交:
      如果本地只有一个分支,用stash的方式也可以,工作区间代码不提交(注意,上文中的工作区间修改都需要提交),stash起来,然后,git pull.
      然后运用stash, 遇到冲突(没冲突的自动放到index区间,有冲突的留在工作区间待解决),解决,add, 最后提交

    3.修改

      a. 如果要删除工作区, git checkout --filename

      b. 如果将暂存区回退至工作区, git reset head

     

    4. git reset深入理解(把握主线:HEAD的指向)

      暂存区和本地仓库其实也是两个指针

           git reset的mixed模式, 会对两个区域都进行回退(默认),git reset head回退到本地仓库当前HEAD,这个时候,本地仓库不变(因为未提交),暂存区回退至与本地仓库等齐的HEAD,导致工作区指针比暂存区超出一个修改,产生了将暂存区内容回退至工作区的现象。(个人的理解,正式一点的可以看下面的描述)

     

     一下三种模式本质上就是是否用本地仓库的内容   覆盖本地仓库自身/soft,   覆盖暂存区/mixed, 覆盖工作区/hard

     --soft:暂存区不会被替换。只更改本地仓库。工作区内容不变

        --mixed:默认值,当重置分支本地仓库所指向commit提交位置时,暂存区中的内容会被 本地仓库内容所替换,工作区内容不变

     --hard:暂存区和工作区的内容都会被新指向的commit提交内容所替换;git reset --hard只影响被跟踪的文件,如果工作区有新增的文件,并不会被影响。


      综上,将内容回退至工作区,head是本地仓库commit的指向, reset默认mixed

      a.未提交: git reset head

           b. 已提交:git reset head^

    5. reset与revert的区别

    6. git stash详解

      git stash save 'expamle message' 储藏全部文件, save无法储藏指定文件
      git stash push -m 'example message' push, 可以储藏全部文件
      git stash push example/example.txt -m 'example message' push, 可以储藏指定文件
      stash好文:http://www.softwhy.com/article-8628-1.html
      强烈推荐:蚂蚁部落 www.softwhy.com

    7. git cherry-pick:https://www.jianshu.com/p/c787fa885ffd
      git cherry-pick [commit id]
      单个commit只需要git cherry-pick commitid
      多个commit 只需要git cherry-pick commitid1..commitid100 注意,不包含第一个commitid 
      如果想搞成[]区间,使用 git cherry-pick A^..B 相当于[A B]包含A

    8 IDE中常见的配置:

    9 eclipse配置:可参考,不一定完全适用.   https://blog.csdn.net/superxiaolong123/article/details/81189481  

      而将eclipse项目传到github上,只需要忽略  /bin/  ,其他的步骤,参考上面文档.

      

  • 相关阅读:
    Oracle的基本语法(增删改查)
    Oracle存储过程的学习
    Oracle创建联合主键
    Oracle查询当前用户的信息
    Oracle给创建函数的权限
    Oracle给存储过程权限及触发器
    Unity3D脚本的生命周期(执行顺序)
    Unity性能优化的N种武器
    序列化、反序列化(Serializable特性)
    Unity 读取资源(图片)
  • 原文地址:https://www.cnblogs.com/heyboom/p/10734930.html
Copyright © 2020-2023  润新知