【Git理论】概念,基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/I_itaiit/article/details/78816882

笔记为自己在学习理解git时的记录与总结

概念理解

	HEAD指向master,master指向实际的提交
  • 冲突

     两个分支都对同一份文件进行更改后,合并(merge)时会发生。
    
     必须手动解决冲突。
    

    这里写图片描述

基本操作

  • 显示分支合并图

     git log --graph
    
     git log --graph --pretty=oneline --abbrev-commit
    
  • Fast Forward

     合并分支时,通常情况下Git会使用Fast Forward模式,该模式是直接将master指向该分支。
    

    这里写图片描述
    这样删除分支后会丢掉分支信息。

     使用 --no-ff方式的merge
     	git merge --no-ff -m "merge with no-ff" dev
    

    这里写图片描述

  • 添加并切换分支

     git checkout -b gh-pages
    

    -b选项表示切换到新创建的分支

  • 删除分支

     git branch -d branch1
    
  • 关联远程仓库

     git remote add origin https://gitee.com/itaiit/learnGit.git
    
    • 一个本地仓库可以关联多个远程库,此时以不同的名字区分

      • 关联github仓库

        git remote add github https://github.com/itaiit/learngit.git

      • 关联gitee(码云)仓库

        git remote add gitee https://gitee.com/itaiit/learnGit.git

    • 推送

      • 推送到github

        git push github master

      • 推送到gitee

        git push gitee master

        这里写图片描述

  • 查看关联的远程库的信息

     git remote -v
    
  • 删除关联的远程仓库

     git remote rm origin
    
  • 忽略特殊文件.gitignore文件

     github提供的.gitignore文件
    
     https://github.com/github/gitignore
    

    有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files ...

    • 检查.gitignore文件是否有问题

      git check-ignore

  • 使用ssh

    1. 在windows下可以使用http的方式,而不需要每次push都需要验证,但是在linux下,每次向github进行push时都要求输入用户名密码…

      ssh-keygen -t rsa -C "[email protected]"

    2. 测试连接:

      ssh -T [email protected],没错就是“[email protected]"

      然后直接输入yes,即可。

      这里写图片描述

      后面如果在使用中出现错误,请参考git从本地添加到github远程库失败的解决方法

    3. 修改.git/config

      进入当前repository的.git目录(该目录是隐藏目录),修改config文件

      将该处的url换为你对应的github中ssh的url:

      这里写图片描述

      这里写图片描述

      此时,在linux下每次提交就不需要输入用户名和密码了。

错误记录

  1. RT ! [rejected] master -> master (fetch first)
    原因没有同步远程的master分支,执行 “git pull origin master”,这里貌似都不推荐使用pull,而是拆分成两步:fetch和merge

团队中常用的开发模式

在实际开发中,我们应该按照几个基本原则进行分支管理:

  • 首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

  • 那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

  • 你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

    所以,团队合作的分支看起来就像这样:这里写图片描述

  • 参考

    1. https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
  1. https://blog.zengrong.net/post/1746.html

猜你喜欢

转载自blog.csdn.net/I_itaiit/article/details/78816882
今日推荐