Git Cheat Sheet——Git的常用命令和最佳做法
国外网友制作的Git Cheat Sheet,已经翻译为中文,描述了常用的Git命令和使用git的最佳做法
我对翻译后的文案加上序号和格式的调整
建议记下它们,如果你使用git
一、常见命令
1. 创建
克隆现有的存储库
$ git clone ssh://user@domain.com/repo.git
创建新的本地存储库
$ git init
2. 本地变化
更改工作目录中的文件
$ git status
对跟踪文件的更改
$ git diff
将所有当前更改添加到下一次提交
$ git add .
将< file >中的一些更改添加到下一次提交
$ git add -p <file>
提交跟踪文件中的所有本地更改
$ git commit -a
提交先前阶段的更改
$ git commit
更改最后提交
不要修改发布的提交!
$ git commit --amend
3. 提交历史
显示所有提交,从最新开始
$ git log
显示特定文件随时间的变化
$ git log -p <file>
谁在< file >中更改了内容和时间?
$ git blame <file>
4. 分支和标签
列出所有现有分支
$ git branch -av
切换分支
$ git checkout <branch>
根据当前的头部创建一个新分支
$ git branch <new-branch>
基于远程分支创建新的跟踪分支
$ git checkout --track <remote/bran- ch>
删除本地分支
$ git branch -d <branch>
提交标签
$ git tag <tag-name>
5. 更新和发布
列出所有当前配置的远程主机
$ git remote -v
显示有关远程
$ git remote show <remote>
添加名为< Remote >的新远程存储库
$ git remote add <shortname> <url>
从< Remote >下载所有更改,但不要集成到Head中
$ git fetch <remote>
下载更改并直接合并/集成到头中
$ git pull <remote> <branch>
在远程上发布本地更改
$ git push <remote> <branch>
删除远程上的分支
$ git branch -dr <remote/branch>
发布标签
$ git push --tags
6. 合并和重基
将<分支>合并到当前的头部
$ git merge <branch>
将当前的头重新定位到<分支>
不要重新发布已发布的提交!
$ git rebase <branch>
中止重基
$ git rebase --abort
解决冲突后继续重基
$ git rebase --continue
使用配置的合并工具解决冲突
$ git mergetool
使用编辑器手动解决冲突,并(在解决后)将文件标记为“已解决”。
$ git add <resolved-file> $ git rm <resolved-file>
7. 撤销
放弃工作目录中的所有本地更改。
$ git reset --hard HEAD
放弃特定文件中的本地更改。
$ git checkout HEAD <file>
还原一个提交(通过产生一个新的具有相反更改的提交)
$ git revert <commit>
将头指针重置为上一次提交
…并放弃自那以后的所有变化
$ git reset --hard <commit>
…并将所有更改保留为未分阶段的更改。
$ git reset <commit>
…并保存未提交的本地更改。
$ git reset --keep <commit>
二、最佳做法
1. 提交相关修改
提交应该是相关更改的包装。例如,修复两个不同的bug应该产生两个单独的提交。消息使其他开发者更容易理解禅宗。 如果出了什么问题就把它们退回去。
有了诸如分阶段区域和ABI特性这样的工具,只对文件的部分进行分级,Git使创建非常细粒度的提交变得非常容易。
2. 经常提交
提交经常使您的承诺保持较小,并且再次帮助您仅提交相关的更改。
此外,它允许您更频繁地与其他人共享代码。
这样对每个人来说都比较容易 定期集成更改,避免合并冲突。
相反,很少有大量的提交,并且很少分享它们,这使得解决冲突变得困难。
3. 不要半途而废
您应该只在代码完成时提交代码。这并不意味着您必须在提交之前完成一个完整的大型功能。完全相反:分裂
特性的实现分为逻辑块,并记住要尽早提交。
但是,不要只承诺在一天结束前离开办公室之前就在存储库中有一些东西。如果仅仅因为需要一个干净的工作副本(检查分支)而想提交 在变化,拉等)考虑使用Git的«stash»特征相反。
4. 在提交之前测试代码
抵制诱惑,去做一些你认为已经完成的事情。彻底测试它,以确保它真的完成了。
而且没有副作用(据我们所知)。虽然在本地存储库中提交半生不熟的东西只需要您原谅自己,但是在以下情况下进行代码测试就更重要了。 这涉及到推送/与他人共享代码。
5. 编写良好的提交消息
开始您的消息,以一个简短的总结,您的变化(多达50个字符作为一个Gui-deline)。将它与下面的正文分隔开,方法是包含一个空行。您的消息正文应该提供如以下问题的邮件式解答:
改变的动机是什么?它与以前的实施方式有何不同?
使用祈使句、现在时态(省去变化、不改变或改变)与来自Git合并的命令生成的消息一致。
6. 版本控制不是备份系统。
在远程服务器上备份文件是拥有版本控制系统的一个很好的副作用。但是你不应该像使用备份系统一样使用你的VCS。在执行版本控制时,您将应该注意语义上的(见相关的Chan-Ges)-你不应该只是在文件中填塞。
7. 使用分支
分支是Git最强大的特性之一,这不是偶然的:快速和容易的分支是第一天的中心要求。分支是帮助你避免混淆不同发展方向的完美工具. 您应该在开发工作流程中广泛使用分支:用于新特性、bug修复、想法……
8. 就工作流达成一致
git允许您从许多不同的工作流中选择:长时间运行的分支、主题bran-ch、合并或重基、git-flow…。您选择哪一个取决于以下几个因素:你的项目,你的整体开发和部署工作流程,(也许最重要的)是你和你的队友的个人喜好。无论你选择工作,只要确保达成一个共同的工作流程,每个人都遵循这个工作流程。
9. 使用帮助和文档
获取命令行的帮助
$ git help <command>
免费在线资源
http://www.git-tower.com/learn
http://rogerdudler.github.io/git-guide/
http://www.git-scm.org/
Git Cheat Sheet——Git的常用命令和最佳做法相关推荐
- Git Cheat Sheet 中文版
Git Cheat Sheet 中文版 本文内容转载GitHub repo Git-Cheat-Sheet 索引 配置 配置文件 创建 本地修改 搜索 提交历史 分支与标签 更新与发布 合并与重置 撤 ...
- git连接远程仓库以及常用命令
git连接远程仓库以及常用命令 git 连接远程仓库 git ssh key配置 本地配置 git配置 git连接远程仓库 关联远程仓库(将本地仓库推送到新的远程仓库) git常用命令(包括clone ...
- git config credential.helper及常用命令
命令: git config credential.helper <方式>常用命令: git config credential.helper 'cache --timeout 0' # ...
- g-git 相关命令 及其 基本原理探索(二):git 在工作中的常用命令操作 ,超级实用!!!
上一篇git 基本原理对git的使用以及文件分布已经有了一个整体的了解. 本篇将对工作中常用的一些git 操作命令的操作进行总结归纳,方便今后查阅. 文章目录 1. 分离头指针 2. 通过HEAD 来 ...
- git 强制推送_Git 常用命令清单,掌握这些,轻松驾驭版本管理
工程下载.分支的增删查改 工程下载: clone 远程工程:git clone https://XXXX.git fetch 远程分支到本地某分支:git fetch origin : 分支的增删查改 ...
- git 获取最新代码_常用命令之git操作(入门篇)
Git 是一个本地代码管理的工具.它是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 如今的公司,只要涉及到项目开发的,基本都是用 git 来管理代码.所以,学习和掌握一些基本的 ...
- Git的基础知识和常用命令
源代码的管理从最原始的手工备份到后来的CVS, SVN和GIT的应用,经历了一个漫长的过程.GIT大概是除了linux内核以外, Linus Torvalds对信息技术发展的另一重要贡献啦. GITH ...
- git强制推送_Git 常用命令
Git 常用命令总结 1. GIT 工作区 add commitworking directory ------- index(stage) ---------- HEAD | | | | | | 工 ...
- git ssh拉取代码_Git 常用命令及应用这一篇就够了(新手向)
1. git 常用命令 1.1 常用命令 # 初始化git git init # 克隆项目 git clone [url] # 显示文件状态 git status -s # 添加文件到暂存区 git ...
最新文章
- l2_norm opencv torch比较
- C语言经典例39-在有序数组中插入一个数
- 数据科学竞赛-自然语言处理赛流程
- 余承东嘲讽苹果:iPhone 12落后华为Mate40两代
- 程序设计导引及在线实践——练习记录
- SpreadJS V14.2.0 放假前Crack
- 有了这款geek卸载工具,让你卸载不在烦恼!
- 通达OA2017版 手机签章会撑大表格的处理
- ceph存储 PG的状态机和peering过程
- Python 练习实例21 猴子吃桃问题
- 数据泵导入报错ORA-39125和LPX-00225
- 自动清理垃圾文件与文件夹脚本.bat
- 自动驾驶人一定要知道的120多家公司!
- 算法入门——数组,链表,选择排序
- 趣图:公司里来了一个程序员鼓励师
- Tromino谜题java_Tromino谜题
- STM32——跑马灯实现
- 《数据结构学习笔记》-持续记录
- 使用ADO创建Excel数据表
- 《大数据》第七章 聚类 K-means算法 BFR算法 CURE算法