1. 创建版本库
     什么是版本库你?版本库有名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被git管理起来,每个文件的修改、删除、git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
     所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

 [root@1-231 web]# mkdir /learngit
[root@1-231 web]# cd /learngit/
[root@1-231 learngit]# pwd
/learngit

提示:
       如果你使用windows系统,为了避免遇到各种莫名奇妙的问题,请确保目录名(包括父目录)不包含中文
       第二步,通过git init命令把这个目录变成git可以管理的仓库

 [root@1-231 learngit]# git init
初始化空的 Git 版本库于 /learngit/.git/
[root@1-231 learngit]# ls -ah
. .. .git

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

2. 开始使用git命令
     现在我们编写一个readme.txt文件,内容如下:

 [root@1-231 learngit]# vim readme.txt
[root@1-231 learngit]# cat readme.txt
Git is a version control system.
Git is free software.

一定要放到learngit目录下(子目录也行),因为这是一个git仓库,放到其他地方git在厉害也找不到这个文件。
     和把大象放到冰箱需要3步相比,把一个文件放到git仓库只需要两步。
     第一步,用命令git add告诉git,把文件添加到仓库:

 [root@1-231 learngit]# git add readme.txt
[root@1-231 learngit]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: readme.txt

执行上面的命令,没任何显示,这就对了,unix的哲学是“没有消息就是好消息”说明添加成功。
     第二步,用命令git commit告诉git,把文件提交到仓库

 [root@1-231 learngit]# git commit -m "wrote a readme file"
[master(根提交) 62af707] wrote a readme file
1 file changed, 3 insertions(+)
create mode 100644 readme.txt
[root@1-231 learngit]# git status
# 位于分支 master
无文件要提交,干净的工作区

简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
     嫌麻烦不想输入-m "xxx"行不行?确实有办法可以这么干,但是强烈不建议你这么干
     a. 小结:
  ①. 现在总结一下
  ②. 初始化一个git仓库,使用git init命令
  ③. 添加文件到git仓库,分两步:
    1) 第一步,使用git add file,注意可反复多次使用,添加多个文件;
    2)第二步,使用git commit,提交到master,完成文件提交。

3. git status查看文件是否被修改
    我们已经成功第提交了一个readme.txt文件,现在是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容:

 [root@1-231 learngit]# vim readme.txt
[root@1-231 learngit]# cat readme.txt
Git is a version control system.
Git is free software.
Git is a distributed version control system.
Git is free software.

现在,运行git status命令看看结果:

 [root@1-231 learngit]# git status
# 位于分支 master
# 尚未暂存以备提交的变更:
# (使用 "git add <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 修改: readme.txt
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

git status 命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,当还没有 装备提交的修改。
    虽然git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用git diff这个命令看看:

 [root@1-231 learngit]# git diff readme.txt
diff --git a/readme.txt b/readme.txt
index ec548e1..5479166 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,3 +1,4 @@
Git is a version control system.
Git is free software.
-
+Git is a distributed version control system.
+Git is free software.

git diff顾明思议就是查看difference,显示的格式正是unix通用的diff格式,可以从上面的命令输出看到,我们在第一行添加了一个"distributed"单词。
     知道了对readme.txt作了什么修改后,在把它提交到仓库就放心多了,在提交修改和提交新文件是一样的两步,第一步是git add:

 [root@1-231 learngit]# git add readme.txt 

同样没有任何输出。在执行第二步git  commit之前,我们在运作git   status看看当前仓库的状态:

 [root@1-231 learngit]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 修改: readme.txt
#

git  status告诉我们,将要被提交的修改包括readme.txt,下一步,就可以放心地提交了:

 [root@1-231 learngit]# git commit -m "add distributed"
[master 316c92a] add distributed
1 file changed, 2 insertions(+), 1 deletion(-)

提交后,我们在用git status命令看看仓库的当前状态:

 [root@1-231 learngit]# git status
# 位于分支 master
无文件要提交,干净的工作区

a. 小结:
  ①. 要随时掌握工作区的状态,使用git status命令
  ②. 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

git-基础命令使用的更多相关文章

  1. 学习 git基础命令

    缘起 年后到了新公司,由于个人意愿到了一个海外的项目组,除了自己从Java技术栈转了C#技术栈外,很多技术都是第一次使用,学习压力不小啊. 自己也就先从常用的技术开始学起,比如C#,AngularJS ...

  2. 常用 git 基础命令

    git config --global credential.helper store记住密码 git config user.name xxx配置帐号 git config user.email x ...

  3. Git基础命令的使用——详细教程2

    Git安装默认完成后,在左面点击鼠标右键,鼠标右键菜单中会多出来两个选项: a)  Git GUI Here <—>  图型界面模式 b) Git Bash Here <—> ...

  4. [git] 基础命令笔记

    --内容整理自廖雪峰的GIT教程-- git status 查看当前工作区状态,显示未跟踪的文件以及未上传的修改记录 git init 使当前文件夹变成Git可以管理的仓库 git add xxx 将 ...

  5. git基础命令详解

    一些必须要知道的概念 git的三个工作区域:工作目录.暂存区.git仓库. 工作目录:其实就是本地文件磁盘上的文件或目录: 暂存区:是一个文件,保存了下次提交的文件列表信息,一般在git仓库目录中: ...

  6. git 基础命令 学习总结

    首先介绍一个git 里工作流的概念: 你的本地仓库由 git 维护的三棵“树”组成.第一个是你的 工作目录,它持有实际文件:第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动:最后是 H ...

  7. git 基础命令

    1.git init git 初始化仓库 2.git add . git 添加全部文件 3.git add xxx.txt   git 添加单独文件 4.git commit -m "提交的 ...

  8. Git基础命令的使用

    当前git版本: git version 2.9.2.windows.1 1.创建一个能与git服务器连接的本地git库 本地:  git init git status (-s) git add . ...

  9. Git基础命令使用(个人总结)

    个人在开发中整理常用的git命令,相信很多人会需要到的. 全局配置信息: git config --global user.name "Your name" git config ...

  10. git基础命令学习总结

    git版本升级 git clone git://git.kernel.org/pub/scm/git/git.git 列出所有 Git 当时能找到的配置 git config --list git c ...

随机推荐

  1. L1005矩阵取数游戏

    #include <bits/stdc++.h> using namespace std; typedef long long ll; #define rep(i, a, b) for ( ...

  2. 佳木斯集训Day1

    23333第一次写博客 其实在佳木斯集训之前我都已经两三个月没打代码了 在佳木斯的时候前几天真心手生,导致了前几次考试考的很差... D1的考试还是比较良心的,T1是一道大模拟,直接枚举最后几位是00 ...

  3. The introduction of the book American daily English notes (enlarged edition)

    After reading the book of American daily English notes written by Linkun Yang[1], I think I should a ...

  4. Java中只有值传递,(及值传递与引用传递详解)

    首先呢,我们来说一下值传递与引用传递的区别(这两个玩意儿实在调用函数的时候提到的) 比如说 code( a) code( int a ) code(a)是调用函数,a是我们原本函数的一个值类型,然后使 ...

  5. 2019牛客多校训练第三场B.Crazy Binary String(思维+前缀和)

    题目传送门 大致题意: 输入整数n(1<=n<=100000),再输入由n个0或1组成的字符串,求该字符串中满足1和0个数相等的最长子串.子序列. sample input: 801001 ...

  6. S3 Select for Java 使用记录

    背景 后台基本使用 Amazon 的全家桶(EC2.DynamoDB.S3.Step Fuction 等等)构建.现在需要根据访问者的 IP 确定访问者的国家或地区. 已知: 访问者 IP 一个 ip ...

  7. 通过Blazor使用C#开发SPA单页面应用程序(1)

    2019年9月23——25日 .NET Core 3.0即将在.NET Conf上发布! .NET Core的发布及成熟重燃了.net程序员的热情和希望,一些.net大咖也在积极的为推动.NET Co ...

  8. Win服务程序编写以及安装一般步骤

    Win服务程序编写以及安装一般步骤 Windows服务的优点有:1. 能够自动运行.2. 不要求用户交互.3. 在后台运行.本文将介绍常见服务程序编写的一般步骤以及注意事项. 设计服务程序实例: 创建 ...

  9. HTTP与HTTPS之面试必备

    本文主要讲解Http与https的区别,以及https是怎样加密来保证安全的. 首先讲这俩个协议的简单区别: HTTP:超文本传输协议. HTTPS:安全套接字层超文本传输协议HTTP+SSL HTT ...

  10. 在一个jsp页面内实现简单计算器

    首先创建一个calculate.jsp 这是用Javascript代码来验证,代码如下: <script type="text/javascript"> functio ...