码迷,mamicode.com
首页 > 其他好文 > 详细

Git复习步骤

时间:2019-04-19 12:01:56      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:本地仓库   合并   pam   git reset   email   sage   com   ide   描述   

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

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

 

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中常见的配置:

  

 

Git复习步骤

标签:本地仓库   合并   pam   git reset   email   sage   com   ide   描述   

原文地址:https://www.cnblogs.com/heyboom/p/10734930.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!