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

2016-12-15 16:44:04

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

一、安装 git 工具

1. CentOS/RedHat 系统安装:

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

2. Ubuntu/Debian 系统安装:

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

3. All OS 源码安装:

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

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

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

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

二、创建版本仓库

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

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

  1. [root@git ~]# mkdir learngit
  2. [root@git ~]# cd learngit
  3. [root@git learngit]# pwd
  4. /root/learngit

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

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

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

3. 关于文件变动的跟踪

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

4. 关于编码

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

三、把文件添加到版本库

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

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

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

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

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

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

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

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

四、初步修改并提交

1. 继续修改内容

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

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

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

  1. [root@git ~]# git status
  2. # On branch master
  3. # Changes not staged for commit:
  4. # (use "git add <file>..." to update what will be committed)
  5. # (use "git checkout -- <file>..." to discard changes in working directory)
  6. # modified: readme.txt
  7. 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 这个命令看看:

  1. [root@git ~]# git diff readme.txt
  2. diff --git a/readme.txt b/readme.txt
  3. index 46d49bf..9247db6
  4. --- a/readme.txt
  5. +++ b/readme.txt
  6. @@ -, +, @@
  7. -Git is a version control system.
  8. +Git is a distributed version control system.
  9. Git is free software.

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

4. 提交修改

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

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

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

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

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

  1. [root@git ~]# git commit -m "add distributed"
  2. # 提交后,我们再用 git status 命令看看仓库的当前状态
  3. [root@git ~]# git status
  4. # On branch master
  5. 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. python学习 异常

    #===========================常见异常 ===================== #print(a);#NameError: name 'a' is not defined ...

  2. idea怎么设置自己的名字和时间

    1.直接修改idea64.exe.vmoptions 里面添加上 -Duser.name=yourname 重启即可生效 1.file - settings-Editor- File and Code ...

  3. C#定时任务组件之FluentScheduler

    FluentScheduler是.NET开源处理定时任务组件 1.任务的创建注册 public static void TaskActionByMinutes(Action action, int c ...

  4. python的print函数的格式化输出

    使用print函数的时候,可以像C一样格式化输出,同时还支持参数化输出 print('%s' % ("CooMark")) print('整数|%d|' % (123)) prin ...

  5. Oracle数据逻辑迁移综合实战篇

    本文适合迁移大量表和数据的复杂需求. 如果你的需求只是简单的迁移少量表,可直接参考这两篇文章即可完成需求: Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上) Oracle简 ...

  6. 【分布式】Zookeeper服务端启动

    一.前言 前面已经了解了Zookeeper会话相关知识点,接着来学习Zookeeper服务端相关细节. 二.服务端 服务端整体架构如下 Zookeeper服务器的启动,大致可以分为以下五个步骤 1. ...

  7. 使用swagger作为restful api的doc文档生成

    初衷 记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情.也许多点,也许少点.甚至,接口总是需要适应新需求的,修改了,增加了,这份 ...

  8. 微信支付:H5吊起支付API,不显示“确认支付、输入密码”界面

    使用公众号进行支付,官方开发帮助文档: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1 其业务流程如下: 按照业务流程进行开发 ...

  9. Hadoop学习之旅三:MapReduce

    MapReduce编程模型 在Google的一篇重要的论文MapReduce: Simplified Data Processing on Large Clusters中提到,Google公司有大量的 ...

  10. 浅析linux内核中的idr机制

    idr在linux内核中指的就是整数ID管理机制,从本质上来说,这就是一种将整数ID号和特定指针关联在一起的机制.这个机制最早是在2003年2月加入内核的,当时是作为POSIX定时器的一个补丁.现在, ...