git基础学习 - 图1

git

  • git一个开源的分布式版本控制系统

    学习

    1 安装git

    在终端中用git命令看系统有没有安装Git,如果没有通过sudo apt-get install git或者 yum -y install 安装git。
    windows用户可以安装git for windows

    1.1 配置git

    安装完成后执行配置命令添加邮箱和名字

    1. $ git config --global user.name "your name"
    2. $ 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

  1. 这些文件会被分别加入到暂存区,等待提交至版本库
  2. - 第二步 使用命令 `git commit` 将暂存库中的文件提交至版本库,从而产生一个新的版本。
  3. ```bash
  4. $ git commit -m "commit a file"
  5. [root@server proname]$ git commit -m "wzb a auto.sh"
  6. [master(根提交) 8e09832] wzb a auto.sh
  7. 1 file changed, 954 insertions(+)
  8. 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)的区别。