Git命令使用指南
继续git相关的东西,网上很多讲解的,但是还是喜欢这个图:(爱屋及乌,当然内容也很好,文章链接:http://me.iblogc.com/2015/01/16/Git命令使用指南/)

Git是软件开发人员在开发中常用的一种工具,是开发之利器。
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
工作流图示

命令
配置
git config --global user.name 'Your Name'设置git提交显示的名字git config --global user.email your_email@example.com设置git提交显示的邮箱git config --global alias.unstage "reset HEAD"替换命令git reset HEAD命令改为git unstagessh-keygen -t rsa -C your_email@example.com生成SSH Keygit config --global core.editor emacs设置文件编辑器git config --global merge.tool vimdiff设置差异分析工具git config --list查看配置信息
简洁版
初始化仓库git init
添加远程仓库git remote add <自定义名字> <远程仓库url>
给某个仓库名再添加一个远程仓库urlgit remote set-url --add <自定义名字> <远程仓库url>
更新项目git pull
合并分支到当前分支git merge <分支名>
创建标签git tag <标签名字> <提交id前10位字符> 可通过git log获取
获取loggit log
切换分支git checkout <分支名>
创建分支并切换过去git checkout -b <分支名>
删除分支git branch -D <分支名>
推送git push origin <分支名/标签名>
强制推送更新git push -f origin <分支名/标签名>
推送所有分支git push origin --all
推送所有标签git push origin --tags
撤消本地改动(新文件和提交到缓存区的改动,不受影响)git checkout -- <目录><文件名>
撤消本地所有提交与改动
假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它git fetch origingit reset --hard origin/master
其它命令
gitk获取当前分支图形个界面- 参数
<分支名>: 获取某分支图形界面 - 参数
=--all: 获取所有分支图形个界面 cat <目录><文件名>查看文件内容
- 参数
详细版
初始
git init初始化仓库ls显示目录下文件及文件夹(不包含隐藏文件即名字前带点的)- 参数
-a显示目录下所有文件及文件夹
- 参数
git clone <url>克隆项目
提交
git add <目录><文件名>添加文件到版本库,可以多个文件一起添加,中间用空格隔开git add *或git add .添加所有文件到版本库

git status查看项目当前状态,详细信息- 参数
-s: 显示简洁版
绿色表示已经提交的缓存区,红色表示在工作区未提交到缓存区的
A新增 M修改 D删除 U冲突 R重命名?
push会把绿色部分提交,红色部分不提交
已有记录文件做过改动和新文件,需要git add- 参数
git diff查看整个项目里的文件改动情况(工作区和缓存区比较)- 参数
<目录><文件名>: 查看单个文件改动情况(工作区和缓存区比较)
-参数<标签名>: 查看自当前标签发布之后项目的改动情况 - 参数
--cached: 查看整个项目里的文件改动情况(缓存区和本地仓库比较) - 参数
HEAD: 查看整个项目里的文件改动情况(工作区和本地仓库比较) - 参数
--stat: 显示摘要,而非完整diff
- 参数
git commit: 提交到缓存- 参数
-m: 后面空格接提交信息 - 参数
-a: 为所有已有记录文件执行git add(新添加文件还是需要手动git add)
- 参数
git reset HEAD取消缓存已缓存的内容- 参数
<目录><文件名>: 单个文件取消缓存已缓存内容
- 参数
git rm <目录><文件名>: 将文件从缓存区和硬盘上移除- 参数
--cached: 删除缓存中的文件,保留硬盘上的文件
- 参数
git mv不推荐用git log显示当前分支提交记录- 参数
--author=<authorname>: 只寻找某个特定作者的提交 - 参数
--oneline: 显示简洁版- 参数
--oneline -<数字N>: 显示简洁版,显示最近N次提交的记录
- 参数
- 参数
--graph: 显示拓扑图(查看历史中什么时候出现了分支、合并) - 参数
--grep=<关键字>: 根据提交注释关键字过滤提交记录
Git 会对所有的 –grep 和 –author 参数作逻辑或。 如果你用 –grep 和 –author 时,想看的是某人写作的并且有某个特殊的注释内容的提交记录, 你需要加上 –all-match 选项。 在这些例子中,我会用上 –format 选项,这样我们就可以看到每个提交的作者是谁了。详细参考:Git参考手册:检查与比较
- 参数
<分支名>:显示指定分支“可及”的提交记录 - 参数
<分支名1> ^<分支名1>: 查看在分支1不在分支2中的提交记录
分支可以是本地的也可以是远端的
- 参数
--decorate: 显示带tag的记录 - 参数
-p: 显示每个提交引入的补丁 - 参数
--stat: 显示每个提交引入的差值统计 - 其它参数
--since--before--until--after
git log –since –before 根据日期过滤提交记录
如果你要指定一个你感兴趣的日期范围以过滤你的提交,可以执行几个选项 —— 我用 –since 和 –before,但是你也可以用 –until 和 –after。 例如,如果我要看 Git 项目中三周前且在四月十八日之后的所有提交,我可以执行这个(我还用了 –no-merges 选项以隐藏合并提交)Git参考手册:检查与比较:
- 参数
$ git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges
5469e2d Git 1.7.1-rc2
d43427d Documentation/remote-helpers: Fix typos and improve language
272a36b Fixup: Second argument may be any arbitrary string
b6c8d2d Documentation/remote-helpers: Add invocation section
5ce4f4e Documentation/urls: Rewrite to accomodate transport::address
00b84e9 Documentation/remote-helpers: Rewrite description
03aa87e Documentation: Describe other situations where -z affects git diff
77bc694 rebase-interactive: silence warning when no commits rewritten
636db2c t3301: add tests to use --format="%N"
分支
git branch列出当前项目的可用分支,并显示当前工作目录当前分支参数
<分支名>: 创建分支git checkout <分支名>切换到对应分支- 参数
-b创建分支并立即切换到新分支
- 参数
git merge <分支名>合并指定分支到当前分支
标签
git tag显示当前项目的标签- 参数
<标签名>给某个历史记录打标签 - 参数
-a: 添加注解 - 参数
<SHA>: 提交id前n位字符,可通过git log获取,n位基于SHA唯一就行(建议5~7位)
- 参数
远程
git remote列出远端别名
-参数-v: 列出远端别名及链接一般一个别名会看到两个相同的链接(fetch和push)分别是获取和推送的链接
-add <仓库别名> <仓库链接>: 为项目添加一个新的远端仓库rm <仓库别名>: 为项目删除一个远端仓库
只是本地删掉和远端仓库的链接,不会对远端仓库造成影响
git fetch从远端仓库下载最新的分支与数据git pull从远端仓库下载最新数据,并尝试合并到当前分支- 参数
<仓库别名>: 从哪个仓库拉取更新,默认为origingit pull实际是先git fetch后git merge
- 参数
git push推送更新- 参数
<仓库别名> <分支名>: 推送新分支与数据到某个远端仓库 - 参数
<仓库别名> --all: 推送所有分支 - 参数
<仓库别名> --tagsl: 推送所有标签
- 参数
Git命令使用指南的更多相关文章
- git命令行指南
Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息.标记等内容 git remo ...
- 我总结的git命令指南。
git命令行指南 1.windows上安装git的网址:http://msysgit.github.com/. 没有安装过git的 这个网址里下mymsgit. 因为发现有些同学对git还不是那么熟悉 ...
- 关于常用的git命令列表
我博客园中所写的git内容几乎都是看的蒋鑫老师的<git权威指南>这本书实在太好了. 常用的Git命令. git add 添加到暂存区 git add interactive 交互式添 ...
- 一天工作所用到的Git命令
一天工作所用到的Git命令 像大多数新手一样,我一开始是在网上搜索 Git 命令,然后把答案复制粘贴,并没有真正理解它们究竟做了什么. 后来我曾经想过:"如果有一个最常见的 Git 命令的列 ...
- git命令的理解与扩展
Git的模式如图: Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Repository:仓库区(或本地仓库) 一.新建代码库 # 查看gi ...
- 工作所用的日常 Git 命令
几乎每个开发人员都在使用 Git,当然很可能是 GitHub.但大多数开发者大概有 99% 的时间只是使用这三个命令: #使用命令git add <file>,将文件添加到暂存区 git ...
- Git 简易使用指南及补充
Git最简易的使用指南 助你开始使用 git 的简易指南,木有高深内容,;) 安装 下载 git OSX 版 下载 git Windows 版 下载 git Linux 版 创建新仓库 创建新文件夹, ...
- Git简明使用指南[转]
git - 简易指南 助你开始使用 git 的简易指南,木有高深内容,;). Tweet 作者:罗杰·杜德勒 感谢:@tfnico, @fhd and Namics 其他语言 english, deu ...
- Git 命令行帮助
Git usage: git [--version] [--help] [-C <path>] [-c name=value] [--exec-path[=<path>]] [ ...
随机推荐
- oracle序列使用时 先用伪列将序列的id调整到正确的位置
- 【题解】CQOI2017老C的键盘
建议大家还是不要阅读此文了,因为我觉得这题我的解法实在是又不高效又不优美……只是想要记录一下,毕竟是除了中国象棋之外自己做出的组合dp第一题~ 首先如果做题做得多,比较熟练的话,应该能一眼看出这题所给 ...
- [洛谷P1801]黑匣子_NOI导刊2010提高(06)
题目大意:两个操作:向一个可重集中加入一个元素:询问第$k$大的数($k$为之前询问的个数加一) 题解:离散化,权值线段树直接查询 卡点:无 C++ Code: #include <cstdio ...
- bzoj4145 AMPPZ2014 The Prices 状压dp
这个题.......很可以,很小清晰......反正正经的东西我都没想到:重点在于——————我不会处理那个多出来的路费所以当时我就骚骚的弄了一颗树包状压其实这是一个类01背包的状压在每个状态用01背 ...
- 解决echarts中X轴文字过长的问题。【转】
axisLabel: { interval: , formatter:function(value) { debugger var ret = "";//拼接加\n返回的类目项 ; ...
- Leetcode 45. Jump Game II(贪心)
45. Jump Game II 题目链接:https://leetcode.com/problems/jump-game-ii/ Description: Given an array of non ...
- 【sgu390】数位dp
这题其实就是不断地合并子树,跟前面例一的思想是一样的. 这个打法我觉得非常优美啊(学别人的),为什么要搞lim1和lim2呢? 是因为在区间lim1~lim2之外的都是没有用的,但是我们f[h][su ...
- bzoj1040 内向树DP
2013-11-17 08:52 原题传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1040 N个骑士,每个人有一个仇人,那么,每个骑士只有一个 ...
- 说出JAVA中一些常用的类,包,接口,请各举5个~~~
类:1.java.lang.Object2.java.lang.String3.java.lang.System4.java.io.file5.java.io.FileInputStream6.jav ...
- web前端 CSS基础
简单的CSS文件 <style type="text/css"> a{ color:rebeccapurple; font-size: larger; font-wei ...