记录 git 常用的操作命令总结

2016-12-15 16:44:04

作为一名开发者,熟悉使用 git 代码管理工具是一项必备的基本技能。git 相较 SVN 而言,其优点不言而喻。git 的功能非常强大,其包括的操作命令也非常的多,但是从实用性而言,很多命令可能我们一辈子也用不到,这里我只记录一下自己经常使用的 git 命令,熟练使用了这些命令,其实已经可以完全得心应手的使用 git 工具了。我所使用的开发环境是在 CentOS6.5 系统,下边的操作命令都是在 CentOS6.5 上进行实验通过的。

一、安装 git 工具

1. CentOS/RedHat 系统安装:

[root@git ~]# yum install -y git

2. Ubuntu/Debian 系统安装:

[root@git ~]# apt-get install -y git

3. All OS 源码安装:

# 解压 进入代码目录
[root@git ~]# ./configure && make && make install

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

[root@git ~]# git config --global user.name "liwei0526vip"
[root@git ~]# git config --global user.email "liwei0526vip@163.com"

通过 git config 命令的 --global 参数设置了 git 的用户名和用户邮箱,默认情况下这台机器上所有的 git 仓库都会使用这个配置,当然也可以对某个仓库指定具体不同的用户名和用户邮箱。这里不用担心安全问题,后边有说明具体的身份验证。

二、创建版本仓库

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

1. 首先要给仓库创建一个空目录:

[root@git ~]# mkdir learngit
[root@git ~]# cd learngit
[root@git learngit]# pwd
/root/learngit

2. 通过 git init 命令把这个目录变成 git 可以管理的仓库:

[root@git learngit]# git init
Initialized empty Git repository in /root/learngit/.git/
[root@git learngit]# ls -a
.  ..  .git

可以发现当前目录下多了一个 .git 的目录,这个目录是 git 来跟踪管理版本库的,千万不要手动修改这个目录里面的文件,否则就把 git 仓库给破坏了。

3. 关于文件变动的跟踪

首先这里再明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如 TXT 文件,网页,所有的程序代码等等, Git 也不例外。版本控制系统可以告诉你每次的改动,比如在第 5 行加了一个单词 "Linux" ,在第 8 行删了一个单词 "Windows" 。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从 100KB 改成了 120KB ,但到底改了啥,版本控制系统不知道,也没法知道。

4. 关于编码

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

三、把文件添加到版本库

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

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

2.用命令 git add 把文件添加到仓库:

[root@git learngit]# git add readme.txt
# 执行上面的命令,没有任何显示,这就对了 Unix 的哲学是"没有消息就是好消息",说明添加成功

3.用命令 git commit 把文件提交到仓库:

[root@git learngit]# git commit -m "wrote a readme file"
[master (root-commit) 00f58fb] wrote a readme file
   insertions(+)
 create mode  readme.txt

4.简单解释一下 git commit 命令,-m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。为什么 git 添加文件需要 add 和 commit 两步呢?因为 commit 可以一次提交很多文件,所以你可以多次 add 不同的文件,比如:

[root@git learngit]# git add file1.txt
[root@git learngit]# git add file2.txt file3.txt
[root@git learngit]# git commit -m "add 3 files."

四、初步修改并提交

1. 继续修改内容

我们已经成功地添加并提交了一个 readme.txt 文件,继续修改 readme.txt 文件,改成如下内容:

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

2. 运行 git status 命令看看结果

[root@git ~]# git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#    modified:   readme.txt
no changes added to commit (use "git add" and/or "git commit -a")

git status 命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们 readme.txt 被修改过了,但还没有准备提交的修改

3. 使用 git diff 查看修改了什么内容

虽然 Git 告诉我们 readme.txt 被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的 readme.txt ,所以,需要用 git diff 这个命令看看:

[root@git ~]# git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6
--- a/readme.txt
+++ b/readme.txt
@@ -, +, @@
-Git is a version control system.
+Git is a distributed version control system.
 Git is free software.

git diff 顾名思义就是查看 difference ,显示的格式正是 Unix 通用的 diff 格式,可以从上面的命令输出看到,我们在第一行添加了一个 "distributed" 单词。

4. 提交修改

知道了对 readme.txt 作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两步: add 和 commit

[root@git ~]# git add readme.txt

在执行第二步 git commit 之前,我们再运行 git status 看看当前仓库的状态

[root@git ~]# git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
# modified:   readme.txt

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

[root@git ~]# git commit -m "add distributed"
# 提交后,我们再用 git status 命令看看仓库的当前状态
[root@git ~]# git status
# On branch master
nothing to commit (working directory clean)

记录 git 常用的操作命令总结的更多相关文章

  1. 记录git常用操作命令

    GIT的常用操作 0.写在前面 作为一名开发者,熟悉使用 git 代码管理工具是一项必备的基本技能.git 相较 SVN 而言,其优点不言而喻.git 的功能非常强大,其包括的操作命令也非常的多,但是 ...

  2. [Git]Git 常用的操作命令

    创建本地仓库 git init 获取远程仓库 git clone [url] 例如:git clone https://github.com/you/yourpro.git 创建远程仓库 添加一个新的 ...

  3. git常用的操作命令

    设置git用户名/邮箱: $ git config user.name 'github用户名' $ git config user.email '邮箱' 从指定分支切换新分支: git checkou ...

  4. 【github】git常用命令和node项目

    这是之前在本地搞的一个小东西.因为之前电脑经常会很卡.后来发现任务管理器中多了两个不知名的进程:chromgpu.exe和flrefox.exe 乍一看以为和chrome和firefox两个浏览器有关 ...

  5. git中常用的操作命令有哪些?常用操作命令归纳

    git中常用的操作命令有哪些?本篇文章就给到大家归纳了一些git中常用操作命令.有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. git开始 全局配置:配置用户名和e-mail地址 1 ...

  6. Git常用操作命令与图解

    Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone g ...

  7. 2018.4.23 git常用操作命令收集(转)

    Git常用操作命令收集: 1. 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v ...

  8. Git常用操作命令收集

      Git常用操作命令收集 1.进入本地仓库访问位置之后执行命令 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远 ...

  9. npm git 常用命令行 记录

    1. 推出node命令行: 两次ctrl+C或者一次ctrl+D    退出终端:exit; 2.npm 常用 npm install <name>  安装包 npm install &l ...

随机推荐

  1. js文章列表的树形结构输出

    文章表设计成这样了 后端直接给了无任何处理的json数据,现在要前端实现树形结构的输出,其实后端处理更简单写,不过既然来了就码出来 var doclist = [{ "id": 1 ...

  2. 【Win 10 应用开发】分析 URI 中的查询字符串

    分析URI中的字符有K种方法(K >= 2),如果查询字符串中的参数比较简单,可以通过子字符串查找的方式来处理:如果查询字符串相对复杂,你可以使用正则表达式来匹配 key1=value1 ,  ...

  3. springmvc+jpa实现分页的两种方式

    1.工具类 public final class QueryTool { public static PageRequest buildPageRequest(int pageNumber, int ...

  4. C# Excel数据有效性

    C# Excel数据有效性 在Excel中,我们可以使用数据有效性功能来定义哪些数据可以被输入到工作表的单元格中,例如,限制输入的数据为一定范围内的数字或使用下拉列表来限制用户可选择的数据等.这篇文章 ...

  5. android 在 ListView 的 item 中插入 GridView 仿微信朋友圈图片显示。

    转载请声明出处(http://www.cnblogs.com/linguanh/) 先上张效果图: 1,思路简述 这个肯定是要重写 baseAdapter的了,这里我分了两个数据适配器,一个是自定义的 ...

  6. JavaScript : 零基础打造自己的类库

    写作不易,转载请注明出处,谢谢. 文章类别:Javascript基础(面向初学者) 前言 在之前的章节中,我们已经不依赖jQuery,单纯地用JavaScript封装了很多方法,这个时候,你一定会想, ...

  7. ToolsCodeTemplate使用

    最近学习使用CodeSmith代码生成器 CodeSmith 是一种语法类似于asp.net的基于模板的代码生成器,程序可以自定义模板,从而减少重复编码的劳动量,提高效率. 作用:CodeSmith ...

  8. ASP.NET MVC——Razor视图引擎

    Razor是MVC框架视图引擎,我们今天就来说一说Razor视图引擎. 首先还是来创建一个基础项目叫Razor来演示. 先来定义一个Model叫Product public class Product ...

  9. 【神器】vimum在浏览器中键盘操作选择、复制、粘贴,键盘党的最爱

    1.下载: http://files.cnblogs.com/files/quejuwen/vimum_extension_1_56.zip 2.开源:https://github.com/philc ...

  10. java web学习总结(二十三) -------------------编写自己的JDBC框架

    一.元数据介绍 元数据指的是"数据库"."表"."列"的定义信息. 1.1.DataBaseMetaData元数据 Connection.g ...