Git 学习总结(一)

前言:之前偶然的机会学习了廖老师关于Git学习的一个网站,讲解的很好很详细,通俗易懂,学习之余决定将廖老师帖子的精髓作一个总结(相当于是笔记啦~~),也方便日后查询巩固,希望大家共勉!查看廖老师详细原帖

1、安装Git

这里,我只介绍一下在Linux系统下Git的安装,如果需要了解Unix、Mac和Windows几大系统下Git的安装方法,可以自行百度,或者参考本帖开头给出的廖老师的Git学习网站进行查询。

(1)通过git命令查看系统是否安装Git,如出现以下情况:

$ git
The program ‘git‘ is currently not installed. You can install it by typing:
sudo apt-get install git

(2)可以通过一条 sudo apt-get install git 命令进行Git的安装,如果你的Linux版本比较老,可以通过 sudo apt-get install git-core 命令进行Git安装。

2、创建版本库repository

~/workspaces$ mkdir MaxinGit           // 创建目录
~/workspaces$ cd MaxinGit              // 进入目录
~/workspaces/MaxinGit$ pwd             // 显示目录路径
/home/xin02.ma/workspaces/MaxinGit
~/workspaces/MaxinGit$ git init        // 通过git init命令把这个目录编程Git可以管理的仓库
Initialized empty Git repository in /home/xin02.ma/workspaces/MaxinGit/.git/      // 此目录为空目录
~/workspaces/MaxinGit$ ls -ah
.  ..  .git        // 可以发现多了一个.git目录,不要手动修改!

3、添加文件至版本库

编写一个testDemo.txt文件,内容如下:

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

执行以下两个步骤:

(1)添加

~/workspaces/MaxinGit$ git add testDemo.txt

(2)提交(可add多次,一并commit)

~/workspaces/MaxinGit$ git commit -m "wrote a testDemo file"     // -m 后面输入的是本次提交的说明
[master (root-commit) d1cee39] wrote a testDemo file
1 file changed, 2 insertions(+)     // 一个文件被改动,插入了两行
create mode 100644 testDemo.txt

小结:

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

  (2)添加文件到Git仓库,分两步:第一步,使用命令git add <file>,可反复多次使用,添加多个文件;

                  第二步,使用命令git commit完成。

4、修改文件

对testDemo文件进行修改,修改内容如下:

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

运行 git status 命令查看结果:

~/workspaces/MaxinGit$ git status      // 掌握仓库当前的状态

通过 git diff 命令可以查看文件修改了哪些内容:

~/workspaces/MaxinGit$ git diff testDemo.txt

此时,我们可以执行 git add 命令了,在执行 git commit 命令之前,再次执行 git status 看下版本库的状态:

~/workspaces/MaxinGit$ git add testDemo.txt
~/workspaces/MaxinGit$ git status

我们可以发现,显示将要提交的修改包括testDemo.text文件,此时我们可以 git commit 了:

~/workspaces/MaxinGit$ git commit -m "add distributed"[master fe73dca] add distributed1 file changed, 1 insertion(+), 1 deletion(-)

此时,再 git status 看一下状态:

~/workspaces/MaxinGit$ git status

Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working directory clean)的。

5、版本回退

在Git中,我们可以通过 git log 命令查看每次修改的内容:

~/workspaces/MaxinGit$ git log

如果嫌输出信息太多,看得眼花缭乱的,可以试试加上 --pretty=oneline 参数:

~/workspaces/MaxinGit$ git log --pretty=oneline

可以通过版本回退命令 git reset 回退到上一个版本:

~/workspaces/MaxinGit$ git reset --hard HEAD^HEAD is now at d1cee39 wrote a testDemo file

我们发现,此时已经回退到前一个版本了。

此时,我们 git log 看一下:

~/workspaces/MaxinGit$ git log

如果,此时你想回退到之前最新的版本,怎么版呢?我们可以采用如下代码的方式:

~/workspaces/MaxinGit$ git reset --hard fe73dca    // fe73dca为最新版本的commit id号,版本号不需要写全HEAD is now at fe73dca add distributed

Git提供了一个 git reflog 命令用于记录每一次修改的log信息和操作命令,代码如下:

~/workspaces/MaxinGit$ git reflog

此时,我们可以发现每一次进行修改的操作命令和对应的commit id信息,这样,我们可以通过git reset --hard <id>快捷的回退到任何一个版本。

6、撤销修改

(1)我们对testDemo.txt文件继续修改,添加一行语句:

Git is a distributed version control system.
Git is free software.
I hate money.      // 新增语句

此时,你发现,其实我们都 like money,那么怎么办?你可以手动删除,不过这里有另外一种方法,我们先 git status 一下,看结果:

~/workspaces/MaxinGit$ git status

我们发现有一条语句:(use "git checkout -- <file>..." to discard changes in working directory) 可以丢弃工作区(文件的创建和修改区域即为工作区)的修改:

~/workspaces/MaxinGit$ git checkout -- testDemo.txt        // -- 很重要,如果没有--,直接git checkout就是切换分支的命令
~/workspaces/MaxinGit$ git status
# On branch master
nothing to commit (working directory clean)

此时,我们发现,修改被撤销了!

总结:接下来,我们会讨论如果不小心add了,如何撤销修改,下帖很快会与大家见面!
时间: 2024-08-27 02:38:46

Git 学习总结(一)的相关文章

git 学习小记之记住https方式推送密码

昨天刚刚学了点git基础操作,但是不幸的是[email protected]给出公告说尽量使用 https 进行操作.可是在用 https 进行 push 时,都需要输入帐号和密码. 各种百度谷歌之后在[email protected]官网找到了解决方法<https方式使用[email protected]设置密码的方式>文中给出了几个方法,并且都非常简单. 关于 cache 缓存方式,我不太喜欢,因为要设置时间,而且会过期.而 store 相应的非常方便,设置全局后,方便多个库使用.当然如果

Git 学习笔记

Git 学习笔记 本文整理参考廖雪峰的 Git 教程, 整理 Git 学习笔记, 用于 Git 常用命令速查:常用命令用彩色标注! Git学习笔记 $ git config --global user.name "Your Name" 配置本机所有仓库的用户名 $ git config --global user.email "[email protected]" 配置本机所有仓库的Email地址 $ git init 初始化一个Git仓库 $ ls -ah 查看隐

Git学习 -- 自定义Git

忽略特殊文件 在工作区创建.gitignore文件,编写内容 # Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: 忽略Python编译产生的.pyc..pyo.dist等文件或目录 *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa 然后add和commit该文件 此后当工作区出现.gitignore中类型文件时,git

git学习小结

背景:最近因为工作原因,需要将以前的代码库由bitbucket重新布置在一台服务器上,所以就学习了下git,特此记录下 在167这台机器上搭建apache,用做git server,由于以前apache都已经搭好了,所以这里只配置git server 就可以了,此处贴出配置: 服务器搭好了,来到配置中的root目录,git clone https://[email protected]/XXXX 此时,库和服务器都搭好了,用于新库测试的机器也可以从git server上克隆库了,来,我们来试试从

Git学习笔记(二)

本次学习的是 版本回退 基本命令: 查看提交历史      git log 版本回退            git reset 查看每一次的命令 git reflog 具体步骤: 添加一句话到readme.txt中,并提交到Git库中. . readme.txt在Git中目前有三个版本: 按提交时间先后顺序排列如下: 第一个:wrote a readme.txt 第二个:add distrubuted 第三个:add difficulties 如果版本过多的话,根本记不住,只能查看使用命令git

Git 学习笔记&lt;简介与安装&gt; (一)

Git,开源中国以及GitHub所使用的系统, Is A 一个分布式版本控制系统 Be Used to 为团队合作写代码提供方便的管理系统.几乎满足你所有关于合作写代码的幻想. Has 本地端:工作区.版本库 (版本库还含有一个暂存区) 远程仓库:版本库(用来储存版本库的服务器) How To Install Linux: 首先,先输入git,看看是否安装Git: $ gitThe program 'git' is currently not installed. You can install

Git学习笔记总结和注意事项

一.Git简介 Git是目前世界上最先进的分布式版本控制系统,其特点简单来说就是:高端大气上档次! 二.Windows上Git安装 最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和Windows这几大平台上正常运行了. msysgit是Windows版的Git,从http://msysgit.github.io/下载,然后按默认选项安装即可.安装完成后,在开

Git学习 -- 标签管理

新建标签 git tag <tagname>   默认为HEAD,也可以指定一个commit id eg.   git tag v0.9  git tag v1.0 31aa59c git tag <tagname> -m "xxx"   可以指定标签信息 git tag -s <tagname>             可以用PGP签名标签 查看标签 git tag     查看所有标签 git show <tagname>    参看

git(学习之三)基本操作

Git学习笔记 ##################################################### qq:1218761836 qq群:150181442 E-mail:[email protected] ##################################################### 目录 Git. 2 1.1 初次运行前的配置... 2 1.2 创建版本库... 3 0.3 git提交文件... 4 1.4 检查当前文件状态... 4 1.5

git(学习之二)编译安装

Git学习笔记#####################################################qq:1218761836 qq群:150181442##################################################### Git安装1.    Yum安装gityum install git –yyum install -y  git-email git-gui gitk git-svn git-cvs    其中git-svn  git