【工具】GIT简单使用
1安装
下载地址:https://git-scm.com/downloads
linux:
apt-get install git
yum install git
mac:
AppStore中Xcode有集成git,Xcode-Preferences-Downloads-Command Line Tools-Install
2创建,克隆,提交,回滚
创建仓库:在当前路径下执行:git init
设置配置:
$ git config --global user.name 'runoob'
$ git config --global user.email test@runoob.com
克隆:git clone <repo> <directory>
添加文件:git add <file>
删除文件:git rm <file>
提交文件:git commit -m "<message>"
跳过ADD过程提交:git commit -a
查看状态:git status
查看变化:git diff
显示资源历史:git log --pretty==oneline
回滚到指定版本:git reset --hard versionid (前4位即可)
历史命令:git reflog
3工作区、暂存区和版本库
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
git checkout -- <file>:让这个文件回到最近一次git commit
或git add
时的状态
git reset HEAD <file>:版本库替换暂存区
git checkout HEAD <file>:版本库替换暂存区和工作区
4远程仓库,GitHub
4.1设置SSH加密
第1步:创建SSH Key。在用户主目录(如C:\Users\Administrator)下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容
点“Add Key”,你就应该看到已经添加的Key
假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
4.2创建远程仓库,并关联本地仓库
界面右上角找new reporitory,执行创建远程仓库
按提示创建本地仓库或直接绑定本地仓库
1、create a new repository on the command line
echo "# gof" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/qqchaozai/gof.git
git push -u origin master
2、push an existing repository from the command line
git remote add origin https://github.com/qqchaozai/gof.git
git push -u origin master
由于远程库是空的,第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
git fetch:从远程获取最新版本到本地,不会自动merge
git pull:从远程获取最新版本并merge到本地
git push:推送本地版本到远程版本库
5分支管理
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
6异常
1、You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you can merge.
可能原因:以前pull下来的代码没有自动合并导致的
解决办法一:保留本地的更改,中止合并->重新合并->重新拉取
$:git merge --abort
$:git reset --merge
$:git pull
$:git fetch --all
$:git reset --hard origin/master
$:git fetch
爱家人,爱生活,爱设计,爱编程,拥抱精彩人生!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?
- 装饰器和代理模式的区别,从一碗小米粥谈起
- EasyNVR部署在centos虚拟机上出现无法访问情况,该如何排查?
- RTSP协议网页无插件直播平台EasyNVR视频广场无法搜索纯数字关键词的通道,该如何解决的?
- RTSP协议网页无插件直播平台EasyNVR通道管理搜索纯数字关键词,返回结果为空如何解决?
- Mysql如何选择唯一索引和普通索引
- Python自学成才之路 多线程开发
- Mysql为什么会抖一下呢
- Python自学成才之路 线程间协作 lock,condition,event的使用
- Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)
- python自学成才之路 线程间协作之Semaphore,threading.local()
- jenkins基础
- Java 语言基础 (类和对象, 方法和封装, static 关键字和继承, 多态和特殊类)
- 安防视频监控系统视频上云解决方案EasyCVR集成海康EHome私有协议系列:设备录像流数据进行PS包分割
- Java 语言基础 (常用类的概述和使用, String 类的概述和使用, 可变字符串类和日期相关类, 集合类库)