Git是什么
Git是一个比较流行的分布式版本控制器,与SVN很相似都适用于程序员日常开发中,对代码版本进行维护。
Git最主要的特点
Git与SVN比较而言,最大的优点就是Git分布式储存,可以有效降低单点故障所带来的影响。每台服务器上都有相对完整的代码,即使是某一台服务器挂掉,也只是损失了这台服务器上所独有的一小部分代码,对整体影响不算太大。
在windows上安装
个人建议在360软件管家上直接搜索git会出现64位的Git以及对应的TortoiseGit和中文包,根据提示安装
TortoiseGit是一个开放的,为的git版本控制系统的源客户端。像一个普通的文件服务器,除了会记得您有史以来的文件和目录的每一个变化外,还可以恢复您的文件的旧版本,并研究如何以及何时改变了历史数据,谁改变了它。
Git的工作流
- 在克隆 Git 资源作为工作目录。
- 克隆的资源上添加或修改文件。
- 如果其他人修改了,你可以更新资源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
Git 仓库和分支的概念
Git 仓库很容易理解就是存放文件的一块磁盘空间. git 里面有两个仓库, 一个叫本地仓库, 另一个就是远程仓库, 本地仓库存放的是本地的文件以及从远程仓库同步下来的镜像, 远程仓库就是保存本地仓库的镜像. 分支是什么呢? 分支就是从某个提交对象往回看的历
史.
Git分区
我们通过git init命令创建的Git仓库里面包含了两个部分,版本库(Git仓库里的.git隐藏文件)和工作区(隐藏文件外的文件,也就是我们可以看到的可以操作的文件)。
在版本库中标记为 "index" 的区域是暂存区(stage, index),标记为 "master" 的是 master 分支所代表的目录树。(相当是文件的元数据)
object是对象库,里面包含了创建的各种对象及内容。(可以理解为实际的文件内容)
Git的常用基本命令
cd: 切换目录,比如 cd e: 切换到e盘
mkdir: 创建一个文件夹
pwd: 查看当前目录
git init: 初始化一个本地库
git config --global user.name "name": 设置用户名
git config --global user.email "email@example.com": 设置邮箱
git add: 添加文件到缓存区
git commit: 提交文件到分支,-m 添加说明
git status: 查看文件是否有修改
git diff: 对比文件修改内容
git log: 查看提交历史
git reset --hard HEAD^: 回到上一个版本
git reset --hard xxx: 回到指定版本,版本号可以不写全 git reflog: 查看历史提交版本
git rm: 删除版本库文件
rm: 删除本地文件
ls: 查看文件目录
创建GitHub远程连接
-
创建SSH Key
$ ssh-keygen -t rsa -C "your email" 在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub
-
添加公钥
登陆GitHub,打开“Account settings”,“SSH Keys”页面。点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。点“Add Key”,你就应该看到已经添加的Key
-
验证是否成功
$ ssh -T git@github.com
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
创建远程版本库
添加远程库
- 登陆GitHub,在右上角找到“Create a new repo”按钮,创建一个新的仓库
- 在Repositoryname填入learngit,其他保持默认设置,点击“Createrepository” 按钮,就成功地创建了一个新的Git仓库
- $ git remote add origin git@github:
,添加远程库,名 字叫做origin - $ git push -u origin master,把本地库推送到远程库上。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
- 以后提交只用写,$ git push origin master
- 克隆远程库,$gitclonegit@github.com:
.git
五分支管理
1、 创建dev分支,切换到dev分支
$ git checkout -b dev
(git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev
$ git checkout dev)
Switched to a new branch 'dev'
2、 查看当前分支
$ git branch
* dev
master
3、 修改readme.txt,add、commit
4、 切换回master
$ git checkout master
5、 合并分支
$ git merge dev
6、 删除分支
$ git branch -d dev
7、 解决冲突找到冲突文件,去掉<<<<< =====
$ git add 冲突文件名字
$ git commit -m ‘注释’