// 学习笔记来源于 廖雪峰的Git教程
Git 是分布式版本控制系统,
集中式版本控制系统,版本库是集中存放在中央服务器,工作时是用的个人电脑,其最大的缺陷是必须联网才能工作。
安装
Ubuntu Linux / Debian
命令: sudo apt-get install git
Linux 其他版本
通过源码安装,从Git 官网下载源码,解压,输入命令。
命令:
./config
make
sudo make intall
创建版本库(repository)
1. 创建一个空目录
$ mkdir learngit
$ cd learngit
$ pwd // 显示当前目录
2, 将目录变成 Git 可以管理的仓库
$ git init
3. 将一个文件放入Git 仓库
3.1 文件添加到仓库
$ git add filename
3.2 将文件提交到仓库
$ git commit -m "the message that what you added to the repository"
4. 查看仓库内文件状态
$ git status
5. 查看文件的修改内容
$ git diff filename
diff means difference
6. 查看提交日志
$ git log
简略信息
$ git log --pretty=online
7. 版本回退
HEAD 表示当前版本,HEAD^ 表示上一个版本,HEAD^ 表示上上个版本,上100个版本:HEAD~100
$ git reset --hard HEAD^
版本回退到指定版本
$ git reset --hard id // id 版本号的id,这个是git给的,每一个版本都有一个id
8. 记录每一个命令
$ git reflog
工作区 VS. 暂存区
工作区
电脑中能够看见的目录,存放你的文件
版本库(repository)
工作区中的一个隐藏目录(.git),是Git 的版本库,其中存了很多东西,最为重要的是:stage (或 index)的暂存区,还有Git 自动创建的第一个分支:master, 以及指向master 的一个指针:HEAD
9. 撤销修改
$ git checkout -- file // 将file 文件在工作区的修改全部撤销
1)file 自动修改后还没有放到暂存区,现在撤销修改就和版本库一模一样的状态
2) file 已经添加到暂存区后,又做了修改,现在撤销修改就回到添加到暂存区后的状态
总之,就是让文件回到最后一次 git commit 或 git add 时的状态
10. 撤销暂存区的修改,重新放回到工作区
$ git reser HEAD file
11. 删除文件
$ git rm file
$ git commit -m "remove file"
恢复误删文件
$ git checkout -- file
git checkout 是用版本库里的版本替换工作区的版本,无论工作是修改还是删除,都可以“一键还原”
二、 使用远程仓库
1. 配置
1.1 创建SSH key
1.2 为GitHub 配置 SSH
2.建立连接
2.1 将远程仓库与已有本地仓库关联
$ git remot add orgin git@github.com:username/repositoryname.git
远程库的名字默认为:origin
2.2 将远程库直接克隆到本地
$ git clone git@github.com:username/repositoryname.git
3. 将本地内容推送到远程
$ git push -u origin master // 第一次推送,-u 将本地master分支和远程master 分支关联
$ git push origin master // 非第一次推送
3. 分支管理
3.1 创建分支
创建并切换到新分支
$ git checkout -b newbranchname
另一种方式:
$ git branch newbranchname
$ git checkout newbranchname
3.2 查看当前分支
$ git branch
使用该命令会出现所有分支当前分支前会有 * (星号)
3.3 切换分支
$ git checkout aimbranch
3.4 合并分支
$ git merge branchname
git merge 用于合并指定分支到当前分支
3.5 删掉分支
$ git branch -d branchname
4. 解决冲突