Git与GitHub的使用
Git
如何开始使用? 跟着如下步骤
- 在浏览器中输入url:github.com。
- 然后输入用户名和密码。
- 在your repositories菜单栏那里点击New Repository。
- 输入Repository Name。
- 点击Create repository。
- 进入你的Repository页面,点击Clone or download, 点击 Use SSH。
- 看到如下格式的SSH, git@...com:xxxx/repository.git,复制
- 打开git bash,在里面输入命令行 git clone git@...com:xxxx/repository.git
- 但是clone不了,报错了,因为没设置公匙。
- 怎么办呢?创建公钥私钥对。在git bash上输入命令行 ssh-keygen -t rsa -b 4096 -C "你的github邮箱"
- 输入命令后,一直按回车,最后变成这个样子,在~/.ssh目录下生成了公钥id_rsa.pub和私钥 id_rsa。
- 然后显示文件,在git bash输入cat ~/.ssh/id_rsa.pub。 或也直接打开这个文件下,用编辑器打开这个文件直接拷贝。
- 拷贝好之后,重新打开github网页,点击你的头像,进入setting,左侧SSH and GPG keys。然后单击New SSH Key,输入title,把key完整的拷贝进key
- 好了,现在你的个人电脑有权限了。重新输入命令行git clone ....
- clone完毕后,cd到仓库,然后touch个文件,随便写入点内容
- git add .
- git commit -am "say something"。
- git push origin master
到此,你就基本掌握git bash和git hub的配合使用了。
Git原理
关于版本控制
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
- 本地版本控制系统
- 集中式版本控制系统(SVN); Software Version Number
- 分布式版本控制系统(Git)
Git优势
诞生自2005, Linux开源社区
- 速度
- 简单的设计
- 允许上千个并行分支
- 分布式
重要概念
- 已修改(modified)修改了某个文件,但还没有提交保存。
- 已暂存(staged)把已修改的文件放在下次提交时要保存的清单中。
- 已提交(committed)该文件已经被安全地保存在本地数据库中了。
配置用户名和邮箱
git config --global user.name "xxxx"
git config --global user.email xxxx@xx.com
检查有没有提交到暂存区
git status
noting to commit or something to commit
把所有的文件(添加删除修改)都放入到暂存区
git add .
把暂存区的更新提交到本地库
git commit -am "add file"
(git commit with a message "add file")
git status 检查文件的状态(在哪儿)
把当前本地库里的改动推送到远程仓库(origin)的master分支
git push
把本地仓库的文件推送到远程仓库
第一次使用 git push origin master
修改删除文件
把远程仓库的变动更新合并到本地仓库
git pull
修改文件
vim a.md
git add . 或者 git add 文件名.文件扩展名
这里需要注意,如果提交消息包含大量字符窜,提交参数不用加m
此时会进入vim界面,按下i进入编辑状态,进行编辑
编辑完成后按下esc进入命令状态,输入:wq! 或 :aq! 保存退出vim
git commit -a | git commit -am
(git commit -ammend) | (git commit -ammend message)
git push origin master
删除文件
rm a.md
git add .
git commit -am "删除a.md"
如果之前已经git push origin master过,后面可以直接简化成git push
问题
- origin代表什么? 就是仓库主干master的名字, 可以通过git remote -u mastername 主干地址
本地创建一个git项目仓库推送到远程空仓库
- mkdir newProject
- cd newProject
把一个文件夹初始化成一个本地git仓库
注意仓库和文件夹的区别在于仓库下有一个隐藏的.git文件夹,里面有一些信息。对于一个仓库,删除.git文件夹,就变成一个普通文件夹了。
- git init
- touch index.html
- echo "hello" > index.html
- git commit -am "init"
- git remote add origin git@github.com:xxxx/xxxx.git, 这里把远程库的地址添加个标签叫origin
- git push -u origin master
- 查看本地库里记录的远程库地址 git remote -v
- 推送到远程库地址 git push origin master。(慎用,这样会强制推送,会覆盖别人的代码,git push -f origin master。)
- 在添加一个远程库的标签,git remote add gitlab git@gitlab.com:abc/blog.git
- 推送到gitlab标签的地址上,git push gitlab master
- 修改origin标签对应的地址,git remote set-url origin git@github.com:xxx/blog3.git
- 把gitlab标签改名为coding,git remote rename gitlab coding
分支操作 很重要的一部分
查看有哪些分支,git branch -a
创建本地仓库dev分支,git branch dev
切换到dev分支,git checkout dev
touch b.md
git add .
git commit -am "add b.md"
推送到origin地址的dev分支上,git push origin dev
合并分支,切换回master主干, git checkout master。git merge dev,在主干上合并dev分支。
冲突
当自己和别人修改同一个文件的同一个地方,在执行git pull时更新本地合并时, 会出现冲突。
- 修改冲突文件
- 重新提交
Git与GitHub的使用相关推荐
- Git与github基本操作
一. git安装与简单配置 1. git的安装 首先进入git的官方网站git-scm.com 下载自己电脑对应的git版本,然后点击安装即可 点击上图的红色部分进行下载 安装的时候直接默 ...
- 用 Git 和 Github 提高效率的 10 个技巧!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:segmentfault.com/a/11900000038 ...
- 在Pycharm工具中配置集成Git和GitHub
在Pycharm工具中配置集成Git和GitHub 1.集成Git. 打开Pycharm, 点击File-->Settins-->Version Control-->Git 然后在 ...
- R,Git和Github(下)
作者:Wenhu 博客:http://bioinfostar.com/ 本讲第一部分,介绍git的"足够你用"命令:本讲为第二部分,介绍github的主要用途,包括版本管理.分枝管 ...
- clone git 修改保存路径_Git和Github详细入门教程(别再跟我说你不会Git和Github)
前言:成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成.你好,我是梦阳辰,快和我一起搞定Git和Github吧. 文章目录 01.Git概述 02.Git的本地仓库操作 Git的版本回退操作 ...
- 关于Git和Github你不知道的十件事
Git 和 GitHub都是非常强大的工具.即使你已经使用他们很长时间,你也很有可能不知道每个细节.我整理了Git和GitHub可能提高日常效率的10个常用技巧. GitHub 快捷键: t 和 w ...
- Windows 下使用Git管理Github项目
Git Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得 ...
- 用Git向gitHub上传项目
用Git向gitHub上传项目 1.安装git 2.在git安装目录下,运行git-bash.exe 如图所示 3.在git中绑定你注册gitHub是的用户名.邮箱. $ git config -- ...
- git和github的关系
写在前面:我身边好多人问我git和github的区别,想必对于好多人没学过的大佬们恐怕也是一脸懵逼,但是不知道也是不行的,所以我今天就来讲一讲这二者的区别和联系. 用一句话形容这二者的关系:git是弓 ...
- git push github SSL报错处理
本文仅供学习交流使用,如侵立删!demo下载见文末 git push github SSL报错 问题:OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connect ...
最新文章
- R语言dplyr包获取dataframe分组聚合汇总统计值实战(group_by() and summarize() ):均值、中位数、分位数、IQR、MAD、count、unique
- solidworks api二次开发实例详解_Solidworks开发语言对比及分析
- c mysql 延时_Mysql 优化之延迟索引和分页优化
- 使用Java程序输出1~100之间 7的倍数的个数及总和,并打印输出
- php sql文件太大导致无法上传,sql文件太大无法导入phpmyadmin
- 5个令人震惊的统计数据证明日志不足
- bash log传到日志服务器
- (已拿offer)2017腾讯暑期实习生从笔试到面试总结(附带华为、阿里面试经历)...
- ATC52 学习记录
- 鸿蒙系统反应很快吗,EMUI11对比未成形的鸿蒙系统反应速度:速度差距较大,但细节赢了...
- 1133_SICP开发环境搭建
- 20172307 / 20172311 结对编程项目-四则运算 第三周总结
- 《提问的智慧》 - 懒人的脑图
- 易语言dd驱动模拟按键模块_DD虚拟键盘虚拟鼠标
- java 设置图片像素_java设置图片像素
- Linux命令之重启命令
- 可以在线编译运行代码的网站(支持Python)
- ABC247ABCD
- ASCII,UTF,GBK 是什么
- 魔兽世界怀旧服上线,你是曾经500万中的一员吗?
热门文章
- 白话Elasticsearch47-深入聚合数据分析之Cardinality Aggs-cardinality算法之优化内存开销以及HLL算法
- python 合并两个排序的链表(递归解法)
- cd返回上一 git_git统计代码量脚本
- halcon知识:共生矩阵
- linux lz4 lzo,Linux六大压缩算法横评:Ubuntu 19.10最终选择LZ4
- matlab把图片转为base64
- 【vue】ios中从详情页中返回到列表页出现空白的问题
- 攻防世界php2_攻防世界-web2
- JAVA数组扁平化整合_数组扁平化的几种处理放法
- php 递归实现无限极分类和排序_PHP无限级分类实现层级值间用字符串拼接