zoukankan      html  css  js  c++  java
  • git笔记1

    一、Git是什么?

      Git是目前世界上最先进的分布式版本控制系统(没有之一)。

    二、在windows上安装Git

      从Git官网下载:https://pan.baidu.com/s/1pzfLw-Erg38Tr8kuPfXovw

      安装完成后,在开始菜单里找到"Git"->"Git Bash",跳出命令行窗口,则安装成功。

      安装成功后,还需要最后一步设置,在命令行输入:

      $ git config --global user.name "Your Name"

      $ git config --global user.email "email@example.com"

    三、创建版本库

      什么是版本库?版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

      创建一个版本库:首先,选择一个合适的地方,创建一个空目录:

        $mkdir learngit      (创建一个文件夹learngit)

        $cd learngit             (进入这个文件夹)

        $pwd      (查看当前目录的路径)

    注意:如果使用windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。

      第二步,通过git init 命令把这个目录变成Git可以管理的仓库:

       $ git init

      Initialized empty Git repository in /Users/michael/learngit/.git/

      瞬间Git 就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),可以发现当前目录下多了一个.git目录,这个目录是Git来跟踪管理版本库的,不要修改,破坏Git仓库。

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

    四、本地仓库操作命令:

      1、把一个文件放到Git 仓库 需两步:

        (1)$ git add readme.txt

        (2)$ git commit -m "wrote a readme.txt"

      2、$ git status  (可以时刻掌握仓库当前的状态)

      3、$ git diff   (可以查看具体修改了什么内容)

    五、版本回退

      1、 $ git log   (命令显示从最近到最远的提交日志)

        如果嫌输出信息太多,可以加上: --pretty=oneline 参数;

      2、如何退回:

        首先,Git必须知道当前版本是哪个版本,在Git中,用 HEAD 表示当前版本,上一个版本就是HEAD^ ,上上一个版本就是HEAD^^ ,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

        使用 git reset命令:   $ git reset --hard HEAD^  (退回上一个版本)

        可以根据commit id 改变版本:   $ git reset --hard 3628164

      3、退回后,关闭命令界面,如何找新版本的commit id ?

        命令:$ git reflog  ( 记录每一次命令)

    六、工作去和暂存区

      Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。

      1、工作区(Working Directory)

      2、版本库(Repository)

        工作区有一个隐藏目录 .git ,这个不算工作区,而是 Git的版本库。

        Git的版本库里存了很多东西,其中最重要的就是成为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master ,以及指向master的一个指针叫HEAD。

      

        前面我们把文件往Git版本库里添加的时候,是分两步执行的:

        (1)用 git add 把文件添加进去,实际上就是把文件修改添加到暂存区;

        (2)用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支。

        因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit 就是往master 分支上提交更改。

        可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有更改。

    七、撤销修改

      1、$ git checkout -- readme.txt (可以丢弃工作区的修改)

        命令 git checkout -- readme.txt 意思就是,把 readme.txt 文件在工作区的修改全部撤销,这里有两种情况:

        (1)readme.txt 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

        (2)readme.txt 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

      2、用命令: git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区:

        $ git reset HEAD readme.txt

        Unstaged changes after reset:
        M       readme.txt

        git reset 命令既可以退回版本,也可以把暂存区的修改回退到工作区。当我们用HEAD 时,表示最新的版本。  

    八、删除文件

        1、一般情况下,通常直接在文件管理器中把没用的文件删了,或者用 rm 命令删了: $ rm test.txt

        这个时候,Git知道删除了文件,因此,工作区和版本库就不一致了,git status 命令会立刻告诉你哪些文件被删除了。

        现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令 git rm 删掉,并且 git commit:

        $ git rm test.txt
        rm 'test.txt'
        $ git commit -m "remove test.txt"
        [master d17efd8] remove test.txt
         1 file changed, 1 deletion(-)
         delete mode 100644 test.txt
        这样,文件就从版本库中被删除了。
        
        2、另一种情况是删错了,因为版本库里还有,可以把误删的文件恢复到最新版本:
          
    $ git checkout -- test.txt
          git checkout 其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。








    廖雪峰的官方网站:https://www.liaoxuefeng.com/












  • 相关阅读:
    Mac上的USB存储设备使用痕迹在新版操作系统有所变化
    Beware of the encrypted VM
    A barrier for Mobile Forensics
    Second Space could let suspect play two different roles easily
    Take advantage of Checkra1n to Jailbreak iDevice for App analysis
    Find out "Who" and "Where"
    Where is the clone one and how to extract it?
    Downgrade extraction on phones running Android 7/8/9
    高版本安卓手机的取证未来
    How to extract WeChat chat messages from a smartphone running Android 7.x or above
  • 原文地址:https://www.cnblogs.com/chengshun/p/8597199.html
Copyright © 2011-2022 走看看