GIT操作

GIT操作

版本库管理历史

  • 黑暗时期 =》 集中式版本控制 =》 分布式版本控制

    • 黑暗时期:论文定稿 ->论文定稿2 -> 论文定稿18.04.19 -> 论文最终版 -> 论文最最终版 -> 打死都不改版->
    • 集中式版本控制:最早的CVS,后起之秀SVN
    • 分布式版本控制:BitKeeper、GIT
    • 2008年github正式运营,之后git迅速发展

安装配置

  • 安装:sudo apt-get install git
  • 测试:git --version,查看版本
  • 配置:
    • 邮箱:git config --global user.email "你的邮箱"
    • 用户:git config --global user.name "你的名字"
    • 提叫方式:git config --global push.default simple|matching
      • simple:只提交当前分支
      • matching:提交所有分支
    • --global:全局配置
    • --system:系统配置
    • 查看配置:
      • git config --system --list #查看系统
      • git config --global --list #查看当前用户
      • git config --local --list #查看当前仓库

基本操作

  • git init:初始化一个版本库
  • git add:添加追踪文件,'.'可以一次性添加所有文件
  • git commit:提交,每次提交都会记录下来,-m选项指定提交说明
    • 若无法提交,提示进行配置,请参考上面配置的步骤
    • 若已经追踪过的文件再次修改提交,可以简化操作:git commit -a -m '提交日志'
  • git status:查看状态
  • git log:查看提交日志
    • --oneline:一行显示日志信息

分支操作

  • git branch:查看分支,前面带'*'表示当前分支
    • -r:查看远程分支
    • -a:查看所有分支
  • git branch develop:创建新的develop分支
  • git checkout develop:切换到develop分支
  • git merge develop:将develop分支合并到当前分支(操作前需要先切换到目标分支)
  • git branch -d develop:删除develop分支

合并冲突

  • 原因:修改同一文件时容易产生合并冲突
  • 解决:手动
    • 查看状态:git status,确定冲突文件
    • 打开文件,进行手动选择,调整合适的内容
      • 删除冲突格式:>>>>>>、=======、<<<<<<<
      • 合理调整和取舍内容
    • 重新添加:git add .
    • 再次提交:git commit

项目开发

  • master:主分支,用来版本发布,更新的最慢
  • develop:开发分支,保存正常开发的最新代码
  • local:本地分支,表示本地的临时添加新功能使用的分支,需要基于develop,然后需要合并到develop

远程操作

  • 先在github上创建空仓库,记录仓库地址
  • 在本地的仓库中添加远程仓库:git remote add origin 远程仓库地址
  • 指定用户密码的推送:git push -u orgin master

先克隆再推送

  • 克隆:git clone 远程仓库地址
  • 推送:git push
  • 克隆后再推送不需要设置远程仓库地址,默认已经包含

免密码推送

  • 产生秘钥对:公钥和私钥
    • ssh-keygen -t rsa,会在~/.ssh/目录下生成秘钥文件(id_rsa,id_rsa.pub)
  • 将公钥的内容粘贴到托管服务器(github)的settings => SSH的选项下
  • 之后就可以进行无密码的推送操作。

远程协作

  • 在指定的项目中邀请合作开发人员,粘贴其公钥
  • 推送前一定先拉下来最新的内容,合并,有冲突结局冲突,然后在推送
  • git pull拉取操作并合并

GIT原理

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

推荐阅读更多精彩内容

  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,847评论 5 147
  • Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就...
    bondPang阅读 1,311评论 0 6
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,897评论 0 11
  • 题记:平凡如我们,没有天崩地裂的爱情,没有海誓天盟的誓言,亦没有你侬我侬的情话,只因在对的时间彼此相遇,我们相互携...
    谭小宝阅读 181评论 0 0
  • 点击关注文集目录 7. 后凉之覆灭 年轻气盛的呼延超不堪家人受辱,怒杀一名后凉军官,无奈,一家人赶紧收拾收...
    赫连伯伯阅读 576评论 0 2