zoukankan      html  css  js  c++  java
  • Git学习笔记(1)--安装与文件在Git上的提交和后退

    Git学习笔记(1)–安装与文件在Git上的提交和回退

    &&参考文档

    Git的下载和安装

    官方下载后,按照默认配置选项安装,安装完成后,在程序里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

    在这里插入图片描述

    用户名和邮箱

    • 设置用户名和邮箱

    安装完成后,在命令行输入以下命令即可设置用户名和邮箱:

    $git config --global user.name "Your Name"  //设置用户名
    $git config --global user.email "Your email"//设置邮箱 
    

    因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。

    注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

    用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。

    每次commit都会用用户名和邮箱纪录。

    • 查看用户名和邮箱

      $ git config user.name	//用户名
      $ git config user.email	//邮箱
      
    • 更新用户名和邮箱

      git config --global user.name "your name"
      git config --global user.email "your email"	
      

      因为以前有个软件也叫GIT(GNU Interactive Tools),结果Git就只能叫git-core了。由于Git名气实在太大,后来就把GNU Interactive Tools改成gnuitgit-core正式改为git .

    版本库( repository )

    输入以下指令完成版本库的创建:

    $cd e:						//选择路径,我选择的是E盘
    $ mkdir gitdata				//创建文件夹 gitdata
    $ cd gitdata				//选择 文件夹 gitdata
    $ mkdir learngit			//创建文件夹 learngit
    $ cd learngit				//选择 文件夹 learngit
    $ pwd						//打印当前路径
    /e/gitdata/learngit
    $ git init					//初始化本地版本库,把这个目录变成Git可以管理的仓库:
    

    现在已经建好了一个空的仓库(empty Git repository),且当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的.

    如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。

    把文件添加到版本库

    所有的版本控制系统,其实只能跟踪文本文件(比如TXT文件,网页,所有的程序代码等等)的改动,版本控制系统可以告诉文本文件每次的改动 . 而图片、视频、 Microsoft的Word 文件这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化 .

    如果没有历史遗留问题,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。

    建议下载Notepad++代替记事本,千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本在保存UTF-8编码的文件时,在每个文件开头添加了0xefbbbf(十六进制)的字符.

    创建一个readme.txt文件(一定要放到learngit目录(或者子目录)下.),内容如下:

    Git is a version control system.
    Git is free software.
    

    输入以下代码,将文件提交到Git:

    $ git add readme.txt						//第一步相当于 选择
    $ git commit -m "wrote a readme file"		//第二步相当于  确认
    

    -m后面输入的是本次提交的说明,以便日后的查阅

    git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt有两行内容).

    第一步完成后可以多次重复提交(选择多个文件),最后一次 确认 .

    查看文件的修改记录

    • 运行git status命令 查看文件的仓库的当前状态:
    阿杰@▒▒▒ܵı▒▒▒ MINGW64 /e/gitdata/learngit (master)
    $ git status
    On branch master
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
            modified:   readme.txt
    
    no changes added to commit (use "git add" and/or "git commit -a")
    
    

    上面的命令输出告诉我们,readme.txt被修改过了,但还没有准备提交的修改.

    • 查看文本文件的修改记录:
    阿杰@▒▒▒ܵı▒▒▒ MINGW64 /e/gitdata/learngit (master)
    $ git diff
    diff --git a/readme.txt b/readme.txt
    index d8036c1..dd759bd 100644
    --- a/readme.txt
    +++ b/readme.txt
    @@ -1,2 +1,3 @@
    -Git is a version control system.
    +Git is a distributed version control system.
    +Good.
     Git is free software.
     No newline at end of file
    
    
    • 当提交新的文件后,在输入git status后:
    阿杰@▒▒▒ܵı▒▒▒ MINGW64 /e/gitdata/learngit (master)
    $ git status
    On branch master
    nothing to commit, working tree clean
    

    nothing to commit当前没有需要提交的修改,而且working tree clean工作目录是干净的.

    历史记录的查看

    输入git log,查看所有版本的修改信息:

    阿杰@▒▒▒ܵı▒▒▒ MINGW64 /e/gitdata/learngit (master)
    $ git log
    commit 196963208ebcdf13473f872cec73679373ea8f11 (HEAD -> master)
    Author: AJie <1339126726@qq.com>
    Date:   Sun Oct 27 19:18:01 2019 +0800
    
        wirt GPL
    
    commit 07dab98432e07cd0cb86bb1242c9a401a4aa19e3
    Author: AJie <1339126726@qq.com>
    Date:   Sun Oct 27 19:11:24 2019 +0800
    
        add two words
    
    commit 165e0472f58966f54b3114985fe31371bb675a13
    Author: AJie <1339126726@qq.com>
    Date:   Sun Oct 27 15:40:05 2019 +0800
    
        wrote a readme file
    

    196963208ebcdf13473f872cec73679373ea8f11为版本的 commit id

    输入git log --pretty=oneline得到简要的历史记录:

    阿杰@▒▒▒ܵı▒▒▒ MINGW64 /e/gitdata/learngit (master)
    $ git log --pretty=oneline
    196963208ebcdf13473f872cec73679373ea8f11 (HEAD -> master) wirt GPL
    07dab98432e07cd0cb86bb1242c9a401a4aa19e3 add two words
    165e0472f58966f54b3114985fe31371bb675a13 wrote a readme file
    

    HEAD代表当前 文件 的版本,若是想回退到上一版本则使用$gitreset --hard HEAD^;回退到上上各版本则需要$git reset --hard HEAD^^…依此类推.也可以使用HEAD~n其中n代表回退几次.

    同样可以使用$ git reset --hard+版本前的 commit id

    指令的历史记录

    输入git reflog来查询你的历史指令

    阿杰@▒▒▒ܵı▒▒▒ MINGW64 /e/gitdata/learngit (master)
    $ git reflog
    07dab98 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
    1969632 HEAD@{1}: commit: wirt GPL
    07dab98 (HEAD -> master) HEAD@{2}: commit: add two words
    165e047 HEAD@{3}: commit (initial): wrote a readme file
    

    小结

    • 初始化一个Git仓库,使用git init命令。

    • 添加文件到Git仓库,分两步:

      1. 使用命令git add,注意,可反复多次使用,添加多个文件;
      2. 使用命令git commit -m,做好备注,完成。
    • 要随时掌握工作区的状态,使用git status命令。

    • 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

    • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

    • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
      git commit -m `,做好备注,完成。

    • 要随时掌握工作区的状态,使用git status命令。

    • 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

    • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

    • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

    • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

  • 相关阅读:
    5.共享文件夹
    4.CentOS安装
    JS 递归
    Gulp 笔记
    Js call apply bind区别
    Js new 过程解析
    Js 原型和原型链
    JS blur和click 顺序冲突
    重新认识button disabled属性
    英语笔记3
  • 原文地址:https://www.cnblogs.com/sepZhang/p/13503747.html
Copyright © 2011-2022 走看看