git安装
- 安装
$ sudo apt-get install git
- 检测是否安装成功
$ git --version
GIT操作 【本地仓库】
- 设置GIT
$ git config --global user.email "name@163.com"
$ git config --global user.name "name"
创建版本库
- 切换到需要添加版本控制的目录中
$ cd dir/
- 初始化本地仓库
$ git init
添加本地托管(暂存)文件
- 添加指定文件名的文件
$ git add index.html
- 添加通配符匹配的文件
$ git add *.js
- 添加所有未托管的文件(忽略.gitignore清单中的列表)
$ git add .
$ git commit -m "提交代码对应的版本说明"
备注:
自动创建的一个分支master
-对比差异
$ git diff filename // 对比当前版本和存储在本地仓库中最后一个版本的差异
查看提交日志
$ git log
$ git log --pretty=oneline
版本回退
工作原理:
每当修改一个文件,并且使用commit提交之后,其实就相当于保存了一个快照
// 回退到上一版本
$ git reset --hard HEAD^
// 回退到上上版本
$ git reset --hard HEAD^^
// 回退到上100个版本
$ git reset --hard HEAD~100
// 指定版本回退
$ git reset - -hard xxxxxx // xxx是对应版本的hash值前6位
// 重返未来(从上往下寻找第一个commit的操作,则是未来的最新的版本)
$ git reflog // 查看历史执行过的git操作
$ git reset --hard xxx // 对应的hash值
-撤销操作
a.修改了文件内容,但是还没有添加到暂存区
$ git checkout // 查看可撤销文件
$ git checkout -- xxx // 撤销对应文件,即回到最新版本
GIT操作 【远程仓库】
- 关联远程仓库
- 添加远程仓库并起名叫origin
$ git remote add origin https://github.com/cxy/Git.git
- 查看现有的服务器列表
$ git remote -v
推送本地仓库内容到远程仓库
$ git push -u origin master // 提交到服务器中的master分支
拉取(获取)远程仓库内容到本地仓库
取回远程仓库的变化,并与本地分支合并。
$ git pull origin master // 从master分支中获取代码
克隆(下载远程仓库)
从零开发,先有远程仓库,之后从远程仓库克隆。
// 将远程服务器中代码克隆一份到本地
$ git clone https://github.com/userName/projectName test
// 没有指定每次,默认即是仓库名
$ git clone https://github.com/userName/projectName
HTTPS和SSH认证方式
HTTPS方式
- git remote add origin https://github.com/iphone3.test.git
- git push -u origin master 或 git pull origin master
【每次操作都需要输入账号密码】
与远程仓库交互时,可以是HTTPS和SSH方式两种,更多建议使用SSH方式,操作更加简单!
SSH方式(要进行了SSH认证)
- git remote add origin git@github.com:iphone3/test.gti
- git push -u origin master 或 git pull origin master
GitHub中SSH认证
创建 .ssh 目录
$ mkdir ~/.ssh
切换到.ssh目录中
$ cd ~/.ssh
配置全局的name和email(如果已经设置,即忽略该操作,这是用于标示一个人)
$ git config --global user.name "zyz" // 两个横杆,中间不需要空格
$ git config --global user.email "zyz@1000phone.com"
生成key
$ ssh-keygen -t rsa -C "zyz@1000phone.com" // 与上面填写的邮箱与之对应
备注: 连续三次回车,密码是设置为空
复制.ssh目录中的id_rsa.pub文件内容,即是key (当前用户的目录下)
在github中添加key
View profile and more -> settings -> SSH and GPG keys -> New SSH key