1.本地仓库的操作
1.1 创建版本库
注意:版本控制系统只能跟踪文本文件的改动,不能追踪二进制文件(比如:world、图片)。文本文件尽量使用 UTF-8
编码。
直接从一个空目录中创建版本库
-
mkdir learngit
--在当前目录下创建一个空目录learngit -
cd learngit
--切换到 learngit 目录
注意: pwd
--可以显示当前目录的详细路径
-
git init
--把 learngit 目录变成Git可以管理的仓库
注意:如果创建仓库之后,看不到 .git
的目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看见
从一个非空目录中创建版本库
- 切换到该目录
git init
1.2 把要管理的文件添加到版本库
一个版本维护了当前工作区的一个状态。
以 readme.txt 文件为例
-
git add readme.txt
--将对readme.txt的修改(包括创建和删除操作),添加到暂存区stage;或者添加多个文件修改到暂存区:
git add file1.txt git add file2.txt file3.txt git commit -m "add 3 files."xxxxxxxxxx git add file1.txt
git commit -m "本次提交的说明"
--一次性把暂存区的所有修改提交到分支,git就会利用提交的修改来更新分支上对应文件。
1.3 版本回退
就是让工作区回到某一个状态。
-
git log [--pretty=oneline]
--查看仓库的版本记录注意:
HEAD
表示当前版本。git log
版本记录是从当前版本开始记录,显示旧的版本;并不会显示比当前版本更新的版本。
方式一:从当前版本开始回退
-
git reset --hard HEAD~i
--从当前版本回退i个版本注意:
~
后面的数字表示回退几次版本,默认是一次
方式二:直接跳转到指定版本号commit id
的版本
-
git reflog
由于
git log
命令可能会丢失部分版本信息,则可以利用这个命令,查看到所有的命令记录,记录中包含了所有历史版本的版本号。-
git reset --hard 1094a
--直接调转到版本号为1094a
的版本。
-
1.4 撤销修改
从工作区到分支的过程如下:
工作区的修改
———add———暂存区的修改
———commit————分支
如果修改了工作区,现在要取消掉修改,就要让工作区的修改
和 暂存区
都取消;如果提交到分支,还要让分支回退到之前状态。
-
git checkout -- <file>
把文件在工作区的修改全部撤销 -
git reset HEAD <file>
把暂存区的修改回退到工作区 -
git reset --hard HEAD~i
回退到之前的状态
注意:可以用git status
来查看当前状态
2.本地仓库与远程仓库的远程同步
本地 ——> 远程
先有本地仓库,后有远程仓库(空的) ,把本地仓库的内容推送到GitHub仓库
sgep1: 在本地常见一个仓库 repositoty_1
,添加内容
step2: 在github上创建一个空的远程仓库 repositoty_1
step3: 将本地仓库关联到远程仓库 $ git remote add origin 远程仓库地址
step4: 把本地仓库当前分支的最新修改推送到远程 : $git push origin 当前分支名
如果远程没有当前分支 ,将创建该分支,并且推送修改
远程——>本地
先有远程仓库,后有本地仓库,把远程仓库的内容克隆到本地
step1: 创建远程仓库
step2: 克隆远程仓库到本地 $ git clone 远程仓库地址