git
-
学习
1 安装git
在终端中用
git命令看系统有没有安装Git,如果没有通过sudo apt-get install git或者yum -y install安装git。
windows用户可以安装git for windows。1.1 配置git
安装完成后执行配置命令添加邮箱和名字
$ git config --global user.name "your name"$ git config --global user.email "email@example.com"
注意 git config 命令的—global参数,用了这个参数表示这台机器上所有的git仓库都会使用正配置
2 创建版本库
版本库又名仓库(repository)
新建一个目录,例如/home/test/pronamegit,在这个目录中打开终端,输入git init命令,就可以把这个目录变成git可以管理的仓库。
管理目录中包含.git目录 ,这个目录是git来跟踪管理版本库的。
git这种版本控制系统只能跟踪文本文件的改动。
对于图片、视频这些二进制文件,虽然也能由版本控制系统管理,但是没办法跟踪文件的变化,只能把二进制文件每次改动穿起来,也就是只知道图片从100kb到120kb,到底改动了什么版本控制系统不知道。
建议使用标准的UTF_8,编码,
需要进行版本控制的文件要放到版本库下(子目录也行)
添加文件到git仓库分两部分 第一步,使用命令
git add filesname将指定文件添加至暂存区。注意使用这个命令可以多次反复使用,从而添加多个文件,例如: ```bash $ git add filetest.txt $ git add file2tst.txt file3tst.txt
这些文件会被分别加入到暂存区,等待提交至版本库- 第二步 使用命令 `git commit` 将暂存库中的文件提交至版本库,从而产生一个新的版本。```bash$ git commit -m "commit a file"[root@server proname]$ git commit -m "wzb a auto.sh"[master(根提交) 8e09832] wzb a auto.sh1 file changed, 954 insertions(+)create mode 100644 auto.sh
其中commit a file 是对一个提交版本的文本说明。
3 版本控制
git status 命令可以显示仓库状态,
[root@server proname]# git status
On branch master
Your branch is up-to-date with 'origin/master'.
# 位于分支 master
nothing to commit, working tree clean
无文件要提交,干净的工作区
如果 git status 告诉你有文件被修改过,可以通过,git diff <file> 来查看修改的内容。git status 是一个很常用的命令,每当开始新的一天的工作,执行git commit 前后等,都可以用git status确认仓库状态。
3.1 版本回退
git log命令可以查看提交历史,以便确定回退到哪个版本,提交历史中包含了,commit id(版本号)。git log --pretty=oneline命令简介显示提交历史。HEAD表示当前版本,HEAD^ 表示上一个版本,HEAD^^ 表示上上版本,以此类推,往上100个版本写成HEAD~100 所以可以使用 git reset --hard HEAD^ 命令回退带上一个版本。git reset --hard 3628146命令可以回退到3628146 这个版本号对应的版本,即将HEAD指针 指向3628146这个版本,版本没必要写全,前几位就可以git会自动找
假如回退到上一个版本,在使用git log命令就会发现log也回退到之前版本的样子了(既不会显示最新的long版本log)。git reflog命令用来查看历史命令,同时也记录了版本号的前几位,以便要回到未来哪个版本。
3.2 工作区和暂存区
工作区(working Direcorty)就是在你电脑看的目录,比如我的pronamegit文件夹就是一个工作区,
工作区有一个隐藏目录,.git ,这个目录不算是工作区,而是git版本库(Reoisitiry)
git的版本库里面存放了很多东西,其中最重要的就是称为stage,(或者index)的暂存区,还有git为我们创建的第一个分支为master,以及指向master 的一个指针叫做HEAD。
用git add把文件添加进去,实际上就是把文件修改添加到暂存区
用git commit提交更改,是加上就是把暂存区的所有内容提交到当前分支。
因为我们在创建git版本时,git自动给我们创建了唯一一个master分支,所以现在 git commit就是往master分支上提交更改。
3.3 管理修改
commit只能提交已经通过add 加入暂存区的内容。git diff HEAD --readme.txt 命令查看工作区(readme.txt) 和版本库里面最新版本(HEAD)的区别。
