Git 入门和常用命令详解
git 使用使用教程 git 使用简易指南 常用 Git 命令清单
下载 https://git-scm.com/downloads
工作流
本地仓库由三部分组成。
工作区:保存实际的文件(本地实际的文件目录)
缓存区(Stage / Index):临时保存文件改动
HEAD:指向最近一次提交的后果
下图说明了 Git 的工作流程
Git 常用命令
git init
创建新仓库
mkdir demo cd demo 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 18817801185@163.com
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 —> GitHub 添加 SSH keys
推送到远程仓库
git push [alias] [branch]
在 github 中查看操作结果
提取远程仓库
git fetch origin
在 github 上手动修改文件,比如 README.md
然后在本地使用 fetch 拉取数据,如下:
最后一行信息说明 master 分支已经被更新,所以可以使用 merge 命令将更新同步到本地
查看 fetch 之后的本地的 README.md
删除远程仓库
git remote rm [别名]
Git 入门和常用命令详解的更多相关文章
- Linux基础入门 vim常用命令详解
介绍 vim是一个文本编辑程序 没有菜单,只有命令,且命令繁多 命令行模式下相关命令 移动光标 h: ← 左移 l: → 右移 j: ↓ 下移 k: ↑ 上移 gg: 光标移动文件 ...
- Hexo系列(三) 常用命令详解
Hexo 框架可以帮助我们快速创建一个属于自己的博客网站,熟悉 Hexo 框架提供的命令有利于我们管理博客 1.hexo init hexo init 命令用于初始化本地文件夹为网站的根目录 $ he ...
- Kubernetes,kubectl常用命令详解
kubectl概述 祭出一张图,转载至 kubernetes-handbook/kubectl命令概述 ,可以对命令族有个整体的概念. 环境准备 允许master节点部署pod,使用命令如下: kub ...
- hbase shell基础和常用命令详解(转)
HBase shell的基本用法 hbase提供了一个shell的终端给用户交互.使用命令hbase shell进入命令界面.通过执行 help可以看到命令的帮助信息. 以网上的一个学生成绩表的例子来 ...
- samtools常用命令详解(转)
转自:samtools常用命令详解 samtools的说明文档:http://samtools.sourceforge.net/samtools.shtml samtools是一个用于操作sam和ba ...
- cisco常用命令详解
cisco常用命令详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用命令用法展示 1.命令行模式的来回切换 yinzhengjie>enable #从用户模式切换到 ...
- H3C常用命令详解
H3C常用命令详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1.关闭后台日志输出 <yinzhengjie>sys [yinzhengjie]undo info- ...
- hbase shell基础和常用命令详解
HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服 ...
- Tmux 的常用命令详解
Tmux 的常用命令详解 常用命令: tmux #开启tmux tmux ls #显示已有tmux列表(C-b s) tmux attach-session -t 数字 #选择tmux C-b c ...
随机推荐
- Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门
一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数 ...
- Vue.js的环境搭建
vue这个新的工具,确实能够提高效率,vue入门的精髓:(前提都是在网络连接上的情况下) 1.要使用vue来开发前端框架,首先要有环境,这个环境要借助于node,所以要先安装node,借助于node里 ...
- Java String类练习题
题目:1. 给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置.如:"abcbcbabcb34bcbd"中,"bcb"子串的出现位 ...
- wpf中子窗口的几个问题
今天研究了一下wpf中的窗口,写这篇文章来总结一下今天的收获.(转载请注明出处~) 总所周知,窗口是windows系统中十分重要的一个元素(从名字上就能体现出来),而一个应用程序总是包含很多窗口(主窗 ...
- JAVA设计模式:代理模式
最近公司从新开发一个项目,为此对老的代码进行评估分析发现有些地方是可以采用代理模式来进行的,为此对代理模式进行了一次理解: 代理模式:即为指定的目标对象提供一个代理商,由代理商来完成对目标对象的操作. ...
- Abp zero 3.0.1发布
v3.1.0 (2017-02-14) Angular 2.x UI Angular 2 AOT (Ahead Of Time) Compilation, and HMR (Hot Module Re ...
- EWS 通过SubscribeToPullNotifications订阅Exchange新邮件提醒
摘要 在ews中提供了一种拉通知的方式获取服务端邮件的操作,通过这种方式客户端可以订阅该通知,在邮箱有变化的时候,可以收到通知. 工作方式 EWS 通知是在订阅的基础上处理的.通常是一个订阅每个邮箱, ...
- 每天一个linux命令(35)--free命令
free命令可以显示Linux系统中空闲的.易用的物理内存及swap内存,及被内核使用的buffer.在Linux系统监控的工具中,free 命令是最经常使用的命令之一. 1.命令格式: free [ ...
- 每天一个Linux命令(03)--pwd
linux 中用 pwd命令来查看“当前工作目录”的完整路径.简单地说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判断当前目录在文件系统内的确切位置. ...
- javascript string对象方法总结
1.anchor() 用于创建html锚,也就是a标签,()中可以带参数,是a标签的name属性值. var string="hello world"; document.writ ...