Git的日常使用

Git学习总结

       最近因为在使用Git的过程中总是会遇到需要合并分支或者解决冲突的情况,而且使用可视化工具的时候总是会有些不直观。所以花了一些时间研究了一下Git的使用。

       详细的问题请上Git的官网看文档吧https://git-scm.com/book/zh/v2,真心写的很棒。我这里只是记录一下个人对Git的感受以及自己一些常用命令

       首先需要了解的是Git中的三个工作区域(Git仓库、工作目录、暂存区域)。

     a) Git仓库。我们需要区分的是远程仓库和本地仓库。他们一般都是不同的。我们常用了git pull、git push、git fetch其实都是在远程仓库和本地仓库之间进行同步。

      git pull相当于git fetch和git merge的和。

     b) 工作目录。这里其实就是指你进行了修改但是还没有git add的文件。

     c) 暂存区域。他的意思其实是当你下一次提交(git commit)的时候会提交暂存区域内的修改到本地仓库。通过git add将修改添加到暂存区域中来。

 

  现在再来针对单个文件,文件有三种状态。已修改(modified)、已暂存(staged)、提交(commited)。分别对应上述的操作。还有已跟踪和未跟踪,这个关系不大。

 

       接下来进入正题。Git之所以很快流行起来的原因,很大程度上是因为它能够很方便的合并分支。如果对Git中的分支开发工作流不清楚的,强烈建议去看一下https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E6%B5%81。这里假设你已经创建了与远程仓库分支对应的跟踪分支。

                           

          合并分支:例如我要将A分支合并到B分支当作

              1. 切换到B分支下。git checkout B

              2. 更新当前分支。git fetch。有时候会需要加上<name> <branch>

              3. 如果有冲突的话合并冲突(这个之后在讲)。git merge

              4. 合并分支。git merge A。

              5. 如果有冲突的话再解决冲突。

 

  冲突其实可以稍微的分为两种。一种是Git可以自动帮我们搞定的冲突,比如说虽然是在同一个文件,但是不是在同一个位置的修改。还有一种是需要我们自己判断解决的冲突。

                         第一种:

                                   我们在git merge的之后,会碰到出现给文件命名的情况。之前 一直不理解,其实这里是说这个解决的冲突从新commit的说明。

                         第二种:

      •    1.   git status 查看未合并的冲突文件
    •       2.  进入文件,你会看到
        •     <<<<<<< HEAD:index.html
        •     <div id="footer">contact : email.support@github.com</div>
        •     =======
        •     <div id="footer">
        •      please contact us at support@github.com
        •     </div>
        •     >>>>>>> iss53:index.html
        • 你可以重新编辑这一段成为你想要的样子。HEAD指的是你当前的分支。
      •     3. 使用git add将冲突标记未已解决。
      •     4. git commit。提交到本地仓库。

          Note:git add的时候并不会去判断你到底有没有去解决,也就是说哪怕你什么都没干,直接git add 也是可以的,如果你不想被同事打的话。

 

2018/07/03:

   补上团队协作的部分。

   其实内容在git的官方文档里面都有。

   一般来说我们协作的话可以简单的分为两种模式。

     一是:作为开发者对dev分支都有写权限,当你完成工作之后直接解决冲突推送到远程仓库。这种方式感觉比较适合参与人数比较少的项目,或者说没有那么多代码管理的项目,每个人对自己的代码负责。

     二是:dev分支是被保护的,除了管理员之外其他人只有读的权限(一般开源项目也是这个样子)。这个时候如果你要参与开发,贡献自己的代码,你需要先fork项目到自己的仓库。这个时候你可以将你的代码推送到自己的远端仓库,然后发出一个pull request请求管理员来拉你的分支。如果可以自动合并的话是可以在网页上合并。

   不过一般的流程是管理员pull到本地,测试、审视之后再递交到远端仓库。这种方式可能比较适合对产品有较高要求,团队比较完善的公司。

 

转载于:https://www.cnblogs.com/ShenLw/p/8578561.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值