Git 入门和常用命令详解

git 使用使用教程   git 使用简易指南  常用 Git 命令清单

下载   https://git-scm.com/downloads

工作流

本地仓库由三部分组成。

工作区:保存实际的文件(本地实际的文件目录)

缓存区(Stage / Index):临时保存文件改动

HEAD:指向最近一次提交的后果

下图说明了 Git 的工作流程

图片来源:http://www.runoob.com

Git 常用命令

git init

创建新仓库。在当前目录中创建新的 Git 仓库,生成.git文件夹,其中保存了所有 Git 需要的数据和资源。

(或者直接打开 Git Bash 命令行,进入到当前文件夹然后执行 git int )

注意:如果在系统中不显示隐藏文件,那么 .git 文件夹是看不到的。

如何显示隐藏文件夹:http://jingyan.baidu.com/article/f79b7cb3a61d699144023e26.html

 git clone 

从现有 Git 仓库中拷贝项目(类似 svn checkout

git clone https://github.com/wx1993/Node-React-MongoDB-TodoList.git

结果如下:

如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字

git clone https://github.com/wx1993/Node-React-MongoDB-TodoList.git newDemo

git add

添加两个文件

1 touch test
2 touch app

几种情况

  • git add .  监控工作区的状态树,把工作时的所有变化提交到暂存区,包括文件内容修改 (modified) 以及新文件 (new),但不包括被删除的文件。
  • git add -u  仅监控 已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写
  • git add -A 是上面两个功能的合集(git add --all 的缩写)

git 项目的文件状态

  • A: 本地新增的文件(服务器上没有)
  • C: 文件的一个新拷贝
  • D: 本地删除的文件(服务器上还在)
  • M: 文件的内容或者 mode 被修改了
  • R: 文件名被修改了
  • T: 文件的类型被修改了
  • U: 文件没有被合并(你需要完成合并才能进行提交)
  • X: 未知状态(很可能是遇到git的bug了,你可以向git提交bug report)

git status

查看项目的当前状态

git status -s

以简短的结果形式输出。如果没加该参数会详细输出内容

使用 git add 命令来添加文件,再次查看项目状态

修改 test.txt 文件,并保存

"AM" 状态的意思是,这个文件在添加到缓存之后又有改动。改动后再次执行 git add 命令将其添加到缓存中:

git diff

查看执行 git status 的结果的详细信息

  • 尚未缓存的改动:git diff
  • 查看已缓存的改动: git diff --cached
  • 查看已缓存的与未缓存的所有改动:git diff HEAD
  • 显示摘要而非整个 diff:git diff --stat

注意:

git status 显示你上次提交更新后的更改或者写入缓存的改动,

git diff 逐行显示每一次改动的具体信息。

配置用户名和邮箱地址

Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。

1 $ git config --global user.name ‘wangxi‘
2 $ git config --global user.email [email protected]

git commit 

使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。

git commit -a

跳过git add 提交缓存操作,直接提交到仓库

git reset HEAD

取消所有已缓存的内容(取消 git add)

git reset HEAD -- 文件名

取消指定的已缓存的内容

git rm

git rm 会将条目从缓存区中移除。这与 git reset HEAD 将条目取消缓存是有区别的。 "取消缓存"的意思就是将缓存区恢复为我们做出修改之前的样子。

默认情况下,git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除。

如果你要在工作目录中留着该文件,可以使用 git rm --cached

git mv

git mv 命令做得所有事情就是 git rm --cached 命令的操作, 重命名磁盘上的文件,然后再执行 git add 把新文件添加到缓存区。

git push

将本地工作区的文件变动提交到仓库中,比如提交到 github 上(需要输入github的用户名和密码)

push 之后在 github 项目中查看文件目录,发现 test.css 已经被删除了。

git log

查看提交历史

git log --oneline

查看历史记录的简洁版本

git log --oneline --graph

查看历史中什么出现分支、合并分支的情况

git log --oneline --reverse

逆向显示所以操作日志( --reverse 和 --graph 不能同时使用)

git log --author=wangxi --oneline -5

显示指定用户提交的日志,并设置显示的结果条数为五条

git log --oneline --since={2.hourse.ago} --after={2017-03-28} --no-merges

查看指定日期的日志信息。

--since / --before / --until / --after

--no-merges  隐藏分支合并提交的日志

git tag

给项目版本添加标签

在日志中查看标签

git tag -d v1.0

删除指定标签

git show v1.0

查看指定版本所修改的内容

GitHub 远程仓库

在github中新建仓库后会给出相关的仓库操作命令,如下:

添加 github 作为远程仓库

git remote add [shortname] [url]

查看已经添加的远程仓库

注意:本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要配置验证信息,生成SSH Key,如何配置 SSH Key —> http://www.cnblogs.com/wx1993/p/6646973.html

推送到远程仓库

git push [alias] [branch]

在 github 中查看操作结果

提取远程仓库

git fetch origin

在 github 上手动修改文件,比如 README.md

然后在本地使用 fetch 拉取数据,如下:

最后一行信息说明 master 分支已经被更新,所以可以使用 merge 命令将更新同步到本地

查看 fetch 之后的本地的 README.md

删除远程仓库

git remote rm [别名]

参考:http://www.bootcss.com/p/git-guide/

     http://www.runoob.com/git/git-tutorial.html

  

时间: 2024-10-23 14:50:10

Git 入门和常用命令详解的相关文章

hbase shell基础和常用命令详解

HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase

一步一步学会puppet(五)--配置文件和常用命令详解

这篇博文主要解析了puppet的配置文件和常用命令,以备以后查阅: =================================================================== 1 配置文件 1.1 组织结构 2 常用命令 2.1 常用命令 2.2 各类命令详解 2.3 帮助类命令 =================================================================== 1 配置文件 1.1 组织结构 配置文件位于/etc/

Unix Linux vi vim 使用手册|vi vim 常用命令 详解

Unix Linux vi vim 使用手册 Vi 简介 Vi 是 Unix 世界里极为普遍的全萤幕文书编辑器,几乎可以说任何一台 Unix 机器都 会提供这套软体.Linux 当然也有,它的 vi 其实是 elvis(版权问题),不过它们都 差不多.熟悉 DOS 下的文书处理後,也许会感到 vi 并不好用:Unix 上也已经发展出 许多更新.更好用的文书编辑器,但是并不一定每一台 Unix 机器上都会安装这些额外 的软体.所以,学习 vi 的基本操作还是有好处,让你在各个不同的机器上得心应手.

hbase shell基础和常用命令详解(转)

HBase shell的基本用法 hbase提供了一个shell的终端给用户交互.使用命令hbase shell进入命令界面.通过执行 help可以看到命令的帮助信息. 以网上的一个学生成绩表的例子来演示hbase的用法. name grad course math art Tom 5 97 87 Jim 4 89 80 这里grad对于表来说是一个只有它自己的列族,course对于表来说是一个有两个列的列族,这个列族由两个列组成math和art,当然我们可以根据我们的需要在course中建立更

svn常用命令详解(很全,很实用)

ubuntu下安装subversion客户端: sudo apt-getinstall subversion subversion-tools 1.检出 svn  co  http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码 svn  co  svn://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名 --password 密码 svn  checkout  http://路径(目录或文件的全路径)

【转】 Git 常用命令详解(二)----不错

原文网址:http://blog.csdn.net/ithomer/article/details/7529022 Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍,请参考我的上一篇博客:Git 版本管理工具 一. Git 命令初识 在正式介绍Git命令之前,先介绍一下Git 的基本命令和操作,对Git命令有一个总体的认识 示例:从Git 版本库

Linux常用命令详解(一)--技术流ken

本节内容 基础命令:lsmanpwdcdmkdirechotouchcpmvrmrmdircatmorelessheadtailclearpoweroffreboot进阶命令(下一章节):aliasunaliasunamesuhostnamehistorywhichwcwwhowhoamipingkillkillallpkillseqdudffreedatepidofpstopipuptimewgetcurltrddtargrepfind 命令详解 1. ls 作用:列出文件信息,默认为当前目录

Docker常用命令详解

docker ps 查看当前正在运行的容器 docker ps -a 查看所有容器的状态 docker start/stop id/name 启动/停止某个容器 docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行) docker exec -ti id 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行) docker images 查看本地镜像 docker rm id/name 删除某个容器 docker rmi id/name 删除

git 常用命令详解

最重要2命令: git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来 git pull 本地与服务器端同步 一. Git 命令初识 在正式介绍Git命令之前,先介绍一下Git 的基本命令和操作,对Git命令有一个总体的认识 示例:从Git 版本库的初始化,通常有两种方式: 1)git clone:这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份 例如:git clone git://github.co