Git与Github的学习总结

1. Git

1.1 Git的简介

git是一种分布式的版本控制软件。

1.2 git的初始化操作

  1. 进入要管理的目录
  2. git init:初始化,让git帮助管理当前文件夹
  3. git status:检测目录下文件的状态
  4. 三种状态的变化
    • 红色:新增或者被修改的文件,git add 文件来添加
    • 绿色:git已经管理起来了,git commit -m '提交的描述'
    • 生成版本
  • ps:第一次使用时,生成版本之前需要个人信息的配置:用户名、邮箱

    git config --global user.email "staick@163.com"
    git config --global user.name "staick"
    
  • git的三大区域

1.3 git的回滚

git log #1.先利用该命令查看各版本的校验值
git reset --hard 版本校验值  #2.使用该命令回滚到校验值所对应的版本  
git reflog  #该命令可以查看完整的版本目录
git reset Head 文件名  #暂存区->已管
git checkout -- 文件名 #已管->未管
  • 新版本只保留修改的部分,未修改的用指针指向上一个版本

1.4 分支

  • 分支的应用:bug的紧急修复

  • 分支的操作

    git branch    #分支表、目前所处分支
    git branch 分支名    #创建分支
    git checkout 分支名  #切换分支
    git merge 分支名 #合并分支,合并时应该注意切换分支
    git branch -d 分支名 #删除分支
    
  • ps:分支的合并操作可能出现冲突,解决方法是根据提示,手动修改

1.5 git工作流

2. Github

2.1 git 配合github的基本操作

  • git -> github

    1. 给远程仓库起别名:git remote add 别名 仓库地址
    2. 向远程推送代码:git push -u 别名 分支
  • github -> git

    1. git clone 远程仓库地址(内部已实现git remote add origin 仓库地址)
    2. 切换分支:git checkout 分支
  • ps:如果再dev上开发,要先合并master

    git merge mster
    
  • 更新一下

    git pull origin dev
    

2.2 多地开发的实现

  1. 在家里上传代码

    1. 给远程库起别名

      git remote add origin 远程仓库地址  #其中origin为别名
      
    2. 向远程推送源代码

      git push -u origin 分支
      
  2. 到公司新电脑上第一次获取代码

    1. 克隆远程仓库代码

      git clone 远程仓库地址  #内部已实现git remote add origin 远程仓库地址的操作
      
    2. 切换分支

      git checkout 分支
      
  3. 在公司开发

    1. 切换到dev分支进行开发

      git checkout dev
      
    2. 把master分支合并到dev(仅一次)

      git merge master
      
    3. 修改代码

    4. 提交代码

      git add
      git commit -m '描述'
      git push origin dev
      
  4. 回到家中继续写代码

    1. 切换到dev分支进行开发

      git checkout dev
      
    2. 拉代码

      git pull origin dev
      
    3. 继续开发

    4. 提交代码

  5. 开发完毕,上线

    1. 将dev分支合并到master,进行上线

      git checkout master
      git merge dev
      git push origin master
      
    2. 把dev分支也推送到远程

      git checkout dev
      git merge master
      git push origin dev
      
  • ps:git pull origin dev等同于

    git fetch origin dev  #拉到本地
    git merge origin/dev
    

2.3 rebase(变基):使git记录简洁

  1. 第一种:多个记录整合成一个

    git rebase -i 版本号    #现在的版本号与给的版本号之间进行合并
    git rebase -i HEAD~3 #最近三条合并
    
    • 注意:合并记录时,不要和已提交push合并。
  2. 第二种:仅记录为一条线,将C3插入到线中

    git checkout dev
    git rebase master
    git checkout master
    git merge dev
    
    • 关于log显示

      git log --graph    #可显示流程线
      git log --graph --pretty=format:"%h %s"    #按哈希值 说明显示
      
  3. 第三种:防止产生分叉

    git pull origin dev
    git fetch origin dev
    git rebase origin/dev
    
  • git rebase产生冲突时,先解决冲突,再git rebase --continue

2.4 多人开发

2.5 添加标签

  • 可以用标签替代版本哈希值

    git tag -a v1 -m "第一版"
    git push origin --tags
    
  • git checkout -b dev   #创建并切换到dev分支
    

2.6 给开源项目贡献代码

  1. fork源代码:将别人源代码拷贝到自己的远程库
  2. 在自己仓库进行代码修改
  3. 给源代码的作者提交修改申请(pull request)

2.7 git配置

  1. 项目配置文件:项目/.git/config

    git config --local
    
  2. 全局配置文件:~/.gitconfig

    git config --global
    
  3. 系统配置文件:/etc/.gitconfig

    git config --system  #该命令需要root权限
    

2.8 免密登录

  1. URL中实现

    原来的地址:https://github.com/xx

    现在的地址:https://用户名:密码@github.com/xx

  2. SSH实现

    1. 生成公钥和私钥(放在~/.ssh下,id.rsa.pub为公钥,id.rsa为私钥)

      ssh -keygen
      
    2. 拷贝公钥内容,并设置到github中

    3. 在git本地配置ssh地址

      git remote add origin git@github.com
      
  3. git自动管理验证

2.9 git忽略文件

  • git忽略文件可以让git部管理某些文件

  • 创建.gitignore文件,并在其中添加需要忽略的文件名

2.10 任务管理相关

  1. issues:文档以及任务管理
  2. wiki:项目文档
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 这篇博文是自己在学习git过程中的思考总结。本文仅仅代表个人的看法,如有不妥地方还请本文文末留言。 😊 原文链接g...
    Ming_Hu阅读 1,048评论 4 18
  • 一、Git学习总结的命名 初始化一个Git仓库。 添加文件到Git仓库步骤分两步:使用命令git add <fil...
    Cheriez阅读 446评论 0 1
  • git 使用笔记 git原理: 文件(blob)对象,树(tree)对象,提交(commit)对象 tree对象 ...
    神刀阅读 3,756评论 0 10
  • 转自:https://mp.weixin.qq.com/s/sF-cx2ss4haO74K55Sjf9g 配置 首...
    faremax阅读 269评论 0 0
  • 三大区域: 工作区 → 缓存区 → 本地仓库 一 、 使用 git config 命令进行配置: git ...
    Manchangdx阅读 2,836评论 0 2