zoukankan      html  css  js  c++  java
  • git 学习笔记一

    1.git的 介绍 分布式和 集中式  

      集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。

      那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

      在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

    2.git的安装

      正常安装好git之后可以$git --version 查看 git的版本号是否安装成功

      

      安装完成之后 进行最后一步的设置

      $ git config --global user.name "Your Name"
       $ git config --global user.email "email@example.com"
      因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?
      这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。
    小技巧
     $ git clear 清除一下当前的界面
     
    查看你设置的 用户名和邮箱
     $ git config user.name
     $ git config user.email

      返回上一级目录 cd ..

      ls 可以看到当前目录下的所有文件 文件夹在前 文本在后

    3. Create Our First Repository

      A) 找一个合适的地方创建一个空目录

      pwd 命令用于显示当前目录(在window下面 确保不能出现中文 否则就会出现呵呵的问题)

      B) 通过 git init 把这个目录变成Git可以git可以管理的仓库

      瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。(如果你没有看到 .git目录 可以直接使用 ls -ah命令就能看见)

      现在我们编写一个 first.txt文件 (必须要放在git 仓库下)

      第一步 用 git add 告诉Git 把文件添加到仓库:

      $ git add readme.txt

      第二步 git commit 告诉 Git 把文件提交到仓库

      $ git commit -m "里面是本次提交的说明 可以输入任意内容"

      commit 可以一次提交很多文件 你可以多次add不同的文件。

      

      接下来 如果我们要修改first.txt文件 。 改完之后 可以$ git status 查看结果。

      

      上面的命令告诉我们  first.txt被修改了 但是没有准备提交的修改。如果我们不清楚修改了readme.txt 使用$ git diff这个命令查看修改。

      git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,可以从上面的命令输出看到,我们在第一行添加了一个“distributed”单词。知道了对readme.txt作了什么修改后,再把它提交到仓库就放心多了。之后再执行 提交修改和提交新文件是一样的两步,第一步是git add:同样没有任何输出。在执行第二步git commit之前,我们再运行git status看看当前仓库的状态:

      git status 告诉我们 将要被提交包括first.txt 。最后在查看。记住 时常查看 git status的状态。

      如果在团队协作的时候 你要查看你自己或者别人提交的日志可以直接 使用$ git log --author="shiyao" 就可以看到我执行的操作。

    4.版本回退

      像这样,你不断对文件进行修改,然后不断提交修改到版本库里,就好比玩RPG游戏时,每通过一关就会自动把游戏状态存盘,如果某一关没过去,你还可以选择读取前一关的状态。有些时候,在打Boss之前,你会手动存盘,以便万一打Boss失败了,可以从最近的地方重新开始。Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。

      $ git log 命名显示最近到最远的提交日志 我们可以看到所有提交。 如果闲东西太多 可以加上 --petty=oneline参数

    接下来 怎么会退到上一版本呢?

      A)首先 要让Git知道当前版本是哪个版本 在Git中 用HEAD表示当前版本 上一版本就是HEAD^ 上上一版本就是HEAD^^ 如果100写100个^ 写不过来 所以写成HEAD~100

        $ git reset --hard HEAD^ 

        查看里面的内容使用 $ cat first.txt;

        此时我们可以使用$ git log 查看版本库的状态。

        在没有关闭命令行的情况下 你还可以回到上面一个版本。

    Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL

      

  • 相关阅读:
    leetcode Super Ugly Number
    leetcode Find Median from Data Stream
    leetcode Remove Invalid Parentheses
    leetcode Range Sum Query
    leetcode Range Sum Query
    leetcode Minimum Height Trees
    hdu 3836 Equivalent Sets
    hdu 1269 迷宫城堡
    hud 2586 How far away ?
    poj 1330 Nearest Common Ancestors
  • 原文地址:https://www.cnblogs.com/syomm/p/5650748.html
Copyright © 2011-2022 走看看