记录 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. Android开发学习之路-RecyclerView滑动删除和拖动排序

    Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...

  2. salesforce 零基础学习(五十四)常见异常友好消息提示

    异常或者error code汇总:https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_con ...

  3. iOS----调试技巧,让你的开发事半功倍

    NSLog,po命令和普通断点调试相信每个iOS开发者都会,这里就不作介绍了. 一.Memory Graph Xcode8新增:Memory Graph解决闭包引用循环问题 这个时候就进入了断点模式, ...

  4. PHP扩展-如何使用文件config.m4

    config.m4文件用于指定正在开发的扩展在类unix系统下构建时支持的选项,指定此扩展需要哪些库以及哪些源文件:使用 GNU autoconf 语法编写.注意需要重新执行phpize,config ...

  5. 存储程序(2)——MYSQL

    1.触发器 触发器是与特定数据表相关联的存储过程,当相应的数据表被INSERT.DELETE或UPDATE语句修改时,触发器将自动执行.触发器可以被设置成在这几种语句处理每个数据行之前或之后触发.触发 ...

  6. .NET Core RC2发布在即,我们试着用记事本编写一个ASP.NET Core RC2 MVC程序

    在.NET Core 1.0.0 RC2即将正式发布之际,我也应应景,针对RC2 Preview版本编写一个史上最简单的MVC应用.由于VS 2015目前尚不支持,VS Code的智能感知尚欠火候,所 ...

  7. JavaScript与PHP中正则

    一.JavaScript 有个在线调试正则的工具,点击查看工具.下面的所有示例代码,都可以在codepen上查看到. 1.创建正则表达式 var re = /ab+c/; //方式一 正则表达式字面量 ...

  8. CentOS7 Jenkins安装

    CentOS7 Jenkins安装 CentOS7 Jenkins安装 Download 从Jenkins下载apache-tomcat-8.0.18.tar.gz Install 安装 上传RPM文 ...

  9. ASP.NET Core 中文文档 第三章 原理(2)中间件

    原文:Middleware 作者:Steve Smith.Rick Anderson 翻译:刘怡(AlexLEWIS) 校对:许登洋(Seay) 章节: 什么是中间件 用 IApplicationBu ...

  10. 交易系统使用storm,在消息高可靠情况下,如何避免消息重复

    概要:在使用storm分布式计算框架进行数据处理时,如何保证进入storm的消息的一定会被处理,且不会被重复处理.这个时候仅仅开启storm的ack机制并不能解决上述问题.那么该如何设计出一个好的方案 ...